<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Platform Security Architecture — cryptography and keystore interface: Key and algorithm types</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Platform Security Architecture — cryptography and keystore interface
   &#160;<span id="projectnumber">Working draft</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a>  </div>
  <div class="headertitle">
<div class="title">Key and algorithm types</div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:gafce7ab2b54ce97ea5bff73f13a9f3e5b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#gafce7ab2b54ce97ea5bff73f13a9f3e5b">PSA_KEY_TYPE_NONE</a>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga578159487dfc7096cb191b0d2befe628">psa_key_type_t</a>)0x00000000)</td></tr>
<tr class="separator:gafce7ab2b54ce97ea5bff73f13a9f3e5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8dbaed2fdb1ebae8aa127ad3988516f7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#ga8dbaed2fdb1ebae8aa127ad3988516f7">PSA_KEY_TYPE_VENDOR_FLAG</a>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga578159487dfc7096cb191b0d2befe628">psa_key_type_t</a>)0x80000000)</td></tr>
<tr class="separator:ga8dbaed2fdb1ebae8aa127ad3988516f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6eeda1b2a1550050cf68dbcac35ad8ac"><td class="memItemLeft" align="right" valign="top"><a id="ga6eeda1b2a1550050cf68dbcac35ad8ac"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_KEY_TYPE_CATEGORY_MASK</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga578159487dfc7096cb191b0d2befe628">psa_key_type_t</a>)0x7e000000)</td></tr>
<tr class="separator:ga6eeda1b2a1550050cf68dbcac35ad8ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa97f92025533102616b32d571c940d80"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#gaa97f92025533102616b32d571c940d80">PSA_KEY_TYPE_RAW_DATA</a>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga578159487dfc7096cb191b0d2befe628">psa_key_type_t</a>)0x02000000)</td></tr>
<tr class="separator:gaa97f92025533102616b32d571c940d80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8f214beb04334be08f927f227f097ef1"><td class="memItemLeft" align="right" valign="top"><a id="ga8f214beb04334be08f927f227f097ef1"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_KEY_TYPE_CATEGORY_SYMMETRIC</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga578159487dfc7096cb191b0d2befe628">psa_key_type_t</a>)0x04000000)</td></tr>
<tr class="separator:ga8f214beb04334be08f927f227f097ef1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7f4249bf41fc60daa0b4e2901cdcd02d"><td class="memItemLeft" align="right" valign="top"><a id="ga7f4249bf41fc60daa0b4e2901cdcd02d"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_KEY_TYPE_CATEGORY_ASYMMETRIC</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga578159487dfc7096cb191b0d2befe628">psa_key_type_t</a>)0x06000000)</td></tr>
<tr class="separator:ga7f4249bf41fc60daa0b4e2901cdcd02d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6b686b30cc0193f5a93616097d58934f"><td class="memItemLeft" align="right" valign="top"><a id="ga6b686b30cc0193f5a93616097d58934f"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_KEY_TYPE_PAIR_FLAG</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga578159487dfc7096cb191b0d2befe628">psa_key_type_t</a>)0x01000000)</td></tr>
<tr class="separator:ga6b686b30cc0193f5a93616097d58934f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga92d989f4ca64abd00f463defd773a6f8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#ga92d989f4ca64abd00f463defd773a6f8">PSA_KEY_TYPE_HMAC</a>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga578159487dfc7096cb191b0d2befe628">psa_key_type_t</a>)0x02000001)</td></tr>
<tr class="separator:ga92d989f4ca64abd00f463defd773a6f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae871b2357b8593f33bfd51abbf93ebb1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#gae871b2357b8593f33bfd51abbf93ebb1">PSA_KEY_TYPE_DERIVE</a>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga578159487dfc7096cb191b0d2befe628">psa_key_type_t</a>)0x02000101)</td></tr>
<tr class="separator:gae871b2357b8593f33bfd51abbf93ebb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6ee54579dcf278c677eda4bb1a29575e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#ga6ee54579dcf278c677eda4bb1a29575e">PSA_KEY_TYPE_AES</a>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga578159487dfc7096cb191b0d2befe628">psa_key_type_t</a>)0x04000001)</td></tr>
<tr class="separator:ga6ee54579dcf278c677eda4bb1a29575e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga577562bfbbc691c820d55ec308333138"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#ga577562bfbbc691c820d55ec308333138">PSA_KEY_TYPE_DES</a>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga578159487dfc7096cb191b0d2befe628">psa_key_type_t</a>)0x04000002)</td></tr>
<tr class="separator:ga577562bfbbc691c820d55ec308333138"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad8e5da742343fd5519f9d8a630c2ed81"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#gad8e5da742343fd5519f9d8a630c2ed81">PSA_KEY_TYPE_CAMELLIA</a>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga578159487dfc7096cb191b0d2befe628">psa_key_type_t</a>)0x04000003)</td></tr>
<tr class="separator:gad8e5da742343fd5519f9d8a630c2ed81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae4d46e83f910dcaa126000a8ed03cde9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#gae4d46e83f910dcaa126000a8ed03cde9">PSA_KEY_TYPE_ARC4</a>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga578159487dfc7096cb191b0d2befe628">psa_key_type_t</a>)0x04000004)</td></tr>
<tr class="separator:gae4d46e83f910dcaa126000a8ed03cde9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9ba0878f56c8bcd1995ac017a74f513b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#ga9ba0878f56c8bcd1995ac017a74f513b">PSA_KEY_TYPE_RSA_PUBLIC_KEY</a>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga578159487dfc7096cb191b0d2befe628">psa_key_type_t</a>)0x06010000)</td></tr>
<tr class="separator:ga9ba0878f56c8bcd1995ac017a74f513b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga581f50687f5d650456925278948f2799"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#ga581f50687f5d650456925278948f2799">PSA_KEY_TYPE_RSA_KEYPAIR</a>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga578159487dfc7096cb191b0d2befe628">psa_key_type_t</a>)0x07010000)</td></tr>
<tr class="separator:ga581f50687f5d650456925278948f2799"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5e7439c2905136366c3a876e62e5ddfc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#ga5e7439c2905136366c3a876e62e5ddfc">PSA_KEY_TYPE_DSA_PUBLIC_KEY</a>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga578159487dfc7096cb191b0d2befe628">psa_key_type_t</a>)0x06020000)</td></tr>
<tr class="separator:ga5e7439c2905136366c3a876e62e5ddfc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga011010ee28c20388f3d89fb27088ed62"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#ga011010ee28c20388f3d89fb27088ed62">PSA_KEY_TYPE_DSA_KEYPAIR</a>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga578159487dfc7096cb191b0d2befe628">psa_key_type_t</a>)0x07020000)</td></tr>
<tr class="separator:ga011010ee28c20388f3d89fb27088ed62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad8d37a32a305dda9fb4af1707aace47c"><td class="memItemLeft" align="right" valign="top"><a id="gad8d37a32a305dda9fb4af1707aace47c"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_KEY_TYPE_ECC_PUBLIC_KEY_BASE</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga578159487dfc7096cb191b0d2befe628">psa_key_type_t</a>)0x06030000)</td></tr>
<tr class="separator:gad8d37a32a305dda9fb4af1707aace47c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6754658749714c6ac674bdf6d2d40767"><td class="memItemLeft" align="right" valign="top"><a id="ga6754658749714c6ac674bdf6d2d40767"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_KEY_TYPE_ECC_KEYPAIR_BASE</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga578159487dfc7096cb191b0d2befe628">psa_key_type_t</a>)0x07030000)</td></tr>
<tr class="separator:ga6754658749714c6ac674bdf6d2d40767"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadc2a3c0041ac1d0a2b6f421d8e089b25"><td class="memItemLeft" align="right" valign="top"><a id="gadc2a3c0041ac1d0a2b6f421d8e089b25"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_KEY_TYPE_ECC_CURVE_MASK</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga578159487dfc7096cb191b0d2befe628">psa_key_type_t</a>)0x0000ffff)</td></tr>
<tr class="separator:gadc2a3c0041ac1d0a2b6f421d8e089b25"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadf3ad65d157bf5282849c954bf3f51af"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#gadf3ad65d157bf5282849c954bf3f51af">PSA_KEY_TYPE_ECC_KEYPAIR</a>(curve)&#160;&#160;&#160;(PSA_KEY_TYPE_ECC_KEYPAIR_BASE | (curve))</td></tr>
<tr class="separator:gadf3ad65d157bf5282849c954bf3f51af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad54c03d3b47020e571a72cd01d978cf2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#gad54c03d3b47020e571a72cd01d978cf2">PSA_KEY_TYPE_ECC_PUBLIC_KEY</a>(curve)&#160;&#160;&#160;(PSA_KEY_TYPE_ECC_PUBLIC_KEY_BASE | (curve))</td></tr>
<tr class="separator:gad54c03d3b47020e571a72cd01d978cf2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadbe4c086a6562aefe344bc79e51bdfd3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#gadbe4c086a6562aefe344bc79e51bdfd3">PSA_KEY_TYPE_IS_VENDOR_DEFINED</a>(type)&#160;&#160;&#160;(((type) &amp; <a class="el" href="group__crypto__types.html#ga8dbaed2fdb1ebae8aa127ad3988516f7">PSA_KEY_TYPE_VENDOR_FLAG</a>) != 0)</td></tr>
<tr class="separator:gadbe4c086a6562aefe344bc79e51bdfd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab138ae2ebf2905dfbaf4154db2620939"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#gab138ae2ebf2905dfbaf4154db2620939">PSA_KEY_TYPE_IS_ASYMMETRIC</a>(type)&#160;&#160;&#160;(((type) &amp; PSA_KEY_TYPE_CATEGORY_MASK) == PSA_KEY_TYPE_CATEGORY_ASYMMETRIC)</td></tr>
<tr class="separator:gab138ae2ebf2905dfbaf4154db2620939"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac674a0f059bc0cb72b47f0c517b4f45b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#gac674a0f059bc0cb72b47f0c517b4f45b">PSA_KEY_TYPE_IS_PUBLIC_KEY</a>(type)</td></tr>
<tr class="separator:gac674a0f059bc0cb72b47f0c517b4f45b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac14c6d6e1b2b7f4a92a7b757465cff29"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#gac14c6d6e1b2b7f4a92a7b757465cff29">PSA_KEY_TYPE_IS_KEYPAIR</a>(type)</td></tr>
<tr class="separator:gac14c6d6e1b2b7f4a92a7b757465cff29"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf09f1ca1de6a7e7cff0fe516f3f6c91d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#gaf09f1ca1de6a7e7cff0fe516f3f6c91d">PSA_KEY_TYPE_KEYPAIR_OF_PUBLIC_KEY</a>(type)&#160;&#160;&#160;((type) | PSA_KEY_TYPE_PAIR_FLAG)</td></tr>
<tr class="separator:gaf09f1ca1de6a7e7cff0fe516f3f6c91d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gace08e46dd7cbf642d50d982a25d02bec"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#gace08e46dd7cbf642d50d982a25d02bec">PSA_KEY_TYPE_PUBLIC_KEY_OF_KEYPAIR</a>(type)&#160;&#160;&#160;((type) &amp; ~PSA_KEY_TYPE_PAIR_FLAG)</td></tr>
<tr class="separator:gace08e46dd7cbf642d50d982a25d02bec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0e1d8f241228e49c9cadadfb4579ef1a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#ga0e1d8f241228e49c9cadadfb4579ef1a">PSA_KEY_TYPE_IS_RSA</a>(type)&#160;&#160;&#160;(<a class="el" href="group__crypto__types.html#gace08e46dd7cbf642d50d982a25d02bec">PSA_KEY_TYPE_PUBLIC_KEY_OF_KEYPAIR</a>(type) == <a class="el" href="group__crypto__types.html#ga9ba0878f56c8bcd1995ac017a74f513b">PSA_KEY_TYPE_RSA_PUBLIC_KEY</a>)</td></tr>
<tr class="separator:ga0e1d8f241228e49c9cadadfb4579ef1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga88e01fa06b585654689a99bcc06bbe66"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#ga88e01fa06b585654689a99bcc06bbe66">PSA_KEY_TYPE_IS_ECC</a>(type)</td></tr>
<tr class="separator:ga88e01fa06b585654689a99bcc06bbe66"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7bf101b671e8cf26f4cb08fcb679db4b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_KEY_TYPE_IS_ECC_KEYPAIR</b>(type)</td></tr>
<tr class="separator:ga7bf101b671e8cf26f4cb08fcb679db4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5af146a173b0c84d7e737e2fb6a3c0a7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_KEY_TYPE_IS_ECC_PUBLIC_KEY</b>(type)</td></tr>
<tr class="separator:ga5af146a173b0c84d7e737e2fb6a3c0a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0c567210e6f80aa8f2aa87efa7a3a3f9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#ga0c567210e6f80aa8f2aa87efa7a3a3f9">PSA_KEY_TYPE_GET_CURVE</a>(type)</td></tr>
<tr class="separator:ga0c567210e6f80aa8f2aa87efa7a3a3f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4201013d5947c375fae7311b0f98bac7"><td class="memItemLeft" align="right" valign="top"><a id="ga4201013d5947c375fae7311b0f98bac7"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ECC_CURVE_SECT163K1</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga4e8977c145cce5077c4bce7fec890ad9">psa_ecc_curve_t</a>) 0x0001)</td></tr>
<tr class="separator:ga4201013d5947c375fae7311b0f98bac7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaca8816b785f492a8795b5276977d1369"><td class="memItemLeft" align="right" valign="top"><a id="gaca8816b785f492a8795b5276977d1369"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ECC_CURVE_SECT163R1</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga4e8977c145cce5077c4bce7fec890ad9">psa_ecc_curve_t</a>) 0x0002)</td></tr>
<tr class="separator:gaca8816b785f492a8795b5276977d1369"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4ab7a853ceb3ad0a525ecb571633a1ca"><td class="memItemLeft" align="right" valign="top"><a id="ga4ab7a853ceb3ad0a525ecb571633a1ca"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ECC_CURVE_SECT163R2</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga4e8977c145cce5077c4bce7fec890ad9">psa_ecc_curve_t</a>) 0x0003)</td></tr>
<tr class="separator:ga4ab7a853ceb3ad0a525ecb571633a1ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac9fd11da90ca67649a5f51a158afe5f3"><td class="memItemLeft" align="right" valign="top"><a id="gac9fd11da90ca67649a5f51a158afe5f3"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ECC_CURVE_SECT193R1</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga4e8977c145cce5077c4bce7fec890ad9">psa_ecc_curve_t</a>) 0x0004)</td></tr>
<tr class="separator:gac9fd11da90ca67649a5f51a158afe5f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7a77f5e385f6439dae5857a7f35756eb"><td class="memItemLeft" align="right" valign="top"><a id="ga7a77f5e385f6439dae5857a7f35756eb"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ECC_CURVE_SECT193R2</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga4e8977c145cce5077c4bce7fec890ad9">psa_ecc_curve_t</a>) 0x0005)</td></tr>
<tr class="separator:ga7a77f5e385f6439dae5857a7f35756eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga36e409c36983e41db5db202b1d2095b5"><td class="memItemLeft" align="right" valign="top"><a id="ga36e409c36983e41db5db202b1d2095b5"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ECC_CURVE_SECT233K1</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga4e8977c145cce5077c4bce7fec890ad9">psa_ecc_curve_t</a>) 0x0006)</td></tr>
<tr class="separator:ga36e409c36983e41db5db202b1d2095b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga54997a9f8ef752c6d717171e01c31019"><td class="memItemLeft" align="right" valign="top"><a id="ga54997a9f8ef752c6d717171e01c31019"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ECC_CURVE_SECT233R1</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga4e8977c145cce5077c4bce7fec890ad9">psa_ecc_curve_t</a>) 0x0007)</td></tr>
<tr class="separator:ga54997a9f8ef752c6d717171e01c31019"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaabccf2759188c3e98d82faa5d8dfcd8c"><td class="memItemLeft" align="right" valign="top"><a id="gaabccf2759188c3e98d82faa5d8dfcd8c"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ECC_CURVE_SECT239K1</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga4e8977c145cce5077c4bce7fec890ad9">psa_ecc_curve_t</a>) 0x0008)</td></tr>
<tr class="separator:gaabccf2759188c3e98d82faa5d8dfcd8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga28c765d75773b5fe083219e7c0b054f9"><td class="memItemLeft" align="right" valign="top"><a id="ga28c765d75773b5fe083219e7c0b054f9"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ECC_CURVE_SECT283K1</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga4e8977c145cce5077c4bce7fec890ad9">psa_ecc_curve_t</a>) 0x0009)</td></tr>
<tr class="separator:ga28c765d75773b5fe083219e7c0b054f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafd8ecacea0d9e7e1a0247c047baf3372"><td class="memItemLeft" align="right" valign="top"><a id="gafd8ecacea0d9e7e1a0247c047baf3372"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ECC_CURVE_SECT283R1</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga4e8977c145cce5077c4bce7fec890ad9">psa_ecc_curve_t</a>) 0x000a)</td></tr>
<tr class="separator:gafd8ecacea0d9e7e1a0247c047baf3372"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2bf301617cc84a6f2b36a86cc29eaf4d"><td class="memItemLeft" align="right" valign="top"><a id="ga2bf301617cc84a6f2b36a86cc29eaf4d"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ECC_CURVE_SECT409K1</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga4e8977c145cce5077c4bce7fec890ad9">psa_ecc_curve_t</a>) 0x000b)</td></tr>
<tr class="separator:ga2bf301617cc84a6f2b36a86cc29eaf4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae41caa1cc16d3c35769b6edcb62c8957"><td class="memItemLeft" align="right" valign="top"><a id="gae41caa1cc16d3c35769b6edcb62c8957"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ECC_CURVE_SECT409R1</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga4e8977c145cce5077c4bce7fec890ad9">psa_ecc_curve_t</a>) 0x000c)</td></tr>
<tr class="separator:gae41caa1cc16d3c35769b6edcb62c8957"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2043aa519549a6194d132d81816879bc"><td class="memItemLeft" align="right" valign="top"><a id="ga2043aa519549a6194d132d81816879bc"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ECC_CURVE_SECT571K1</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga4e8977c145cce5077c4bce7fec890ad9">psa_ecc_curve_t</a>) 0x000d)</td></tr>
<tr class="separator:ga2043aa519549a6194d132d81816879bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1607d2cb9591b56dbe1295bedc33e19e"><td class="memItemLeft" align="right" valign="top"><a id="ga1607d2cb9591b56dbe1295bedc33e19e"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ECC_CURVE_SECT571R1</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga4e8977c145cce5077c4bce7fec890ad9">psa_ecc_curve_t</a>) 0x000e)</td></tr>
<tr class="separator:ga1607d2cb9591b56dbe1295bedc33e19e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2ad14935d244d93ee0e4cfe9b1f218a4"><td class="memItemLeft" align="right" valign="top"><a id="ga2ad14935d244d93ee0e4cfe9b1f218a4"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ECC_CURVE_SECP160K1</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga4e8977c145cce5077c4bce7fec890ad9">psa_ecc_curve_t</a>) 0x000f)</td></tr>
<tr class="separator:ga2ad14935d244d93ee0e4cfe9b1f218a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga35ed41203039e94eb4855cc70f28f7f0"><td class="memItemLeft" align="right" valign="top"><a id="ga35ed41203039e94eb4855cc70f28f7f0"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ECC_CURVE_SECP160R1</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga4e8977c145cce5077c4bce7fec890ad9">psa_ecc_curve_t</a>) 0x0010)</td></tr>
<tr class="separator:ga35ed41203039e94eb4855cc70f28f7f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac465f57c34914a01aea8c220a613dfe6"><td class="memItemLeft" align="right" valign="top"><a id="gac465f57c34914a01aea8c220a613dfe6"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ECC_CURVE_SECP160R2</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga4e8977c145cce5077c4bce7fec890ad9">psa_ecc_curve_t</a>) 0x0011)</td></tr>
<tr class="separator:gac465f57c34914a01aea8c220a613dfe6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga58c806d45ab350287ddc49da833bd558"><td class="memItemLeft" align="right" valign="top"><a id="ga58c806d45ab350287ddc49da833bd558"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ECC_CURVE_SECP192K1</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga4e8977c145cce5077c4bce7fec890ad9">psa_ecc_curve_t</a>) 0x0012)</td></tr>
<tr class="separator:ga58c806d45ab350287ddc49da833bd558"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5aa3ceff4603fa3fafd8f2286c5d3e4a"><td class="memItemLeft" align="right" valign="top"><a id="ga5aa3ceff4603fa3fafd8f2286c5d3e4a"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ECC_CURVE_SECP192R1</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga4e8977c145cce5077c4bce7fec890ad9">psa_ecc_curve_t</a>) 0x0013)</td></tr>
<tr class="separator:ga5aa3ceff4603fa3fafd8f2286c5d3e4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabfaaab2eaab0ac360e41c1aff6133cdf"><td class="memItemLeft" align="right" valign="top"><a id="gabfaaab2eaab0ac360e41c1aff6133cdf"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ECC_CURVE_SECP224K1</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga4e8977c145cce5077c4bce7fec890ad9">psa_ecc_curve_t</a>) 0x0014)</td></tr>
<tr class="separator:gabfaaab2eaab0ac360e41c1aff6133cdf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8d1d21b6b87ba4158235b876ae79031d"><td class="memItemLeft" align="right" valign="top"><a id="ga8d1d21b6b87ba4158235b876ae79031d"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ECC_CURVE_SECP224R1</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga4e8977c145cce5077c4bce7fec890ad9">psa_ecc_curve_t</a>) 0x0015)</td></tr>
<tr class="separator:ga8d1d21b6b87ba4158235b876ae79031d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaa61941f815aff976a1debd910b1704c"><td class="memItemLeft" align="right" valign="top"><a id="gaaa61941f815aff976a1debd910b1704c"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ECC_CURVE_SECP256K1</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga4e8977c145cce5077c4bce7fec890ad9">psa_ecc_curve_t</a>) 0x0016)</td></tr>
<tr class="separator:gaaa61941f815aff976a1debd910b1704c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga11224270225c2b2dbfa2ab01073a4e93"><td class="memItemLeft" align="right" valign="top"><a id="ga11224270225c2b2dbfa2ab01073a4e93"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ECC_CURVE_SECP256R1</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga4e8977c145cce5077c4bce7fec890ad9">psa_ecc_curve_t</a>) 0x0017)</td></tr>
<tr class="separator:ga11224270225c2b2dbfa2ab01073a4e93"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3e870a36493143507a01a28c70790fa3"><td class="memItemLeft" align="right" valign="top"><a id="ga3e870a36493143507a01a28c70790fa3"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ECC_CURVE_SECP384R1</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga4e8977c145cce5077c4bce7fec890ad9">psa_ecc_curve_t</a>) 0x0018)</td></tr>
<tr class="separator:ga3e870a36493143507a01a28c70790fa3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4482ff6155006ff509071c32ce263fdf"><td class="memItemLeft" align="right" valign="top"><a id="ga4482ff6155006ff509071c32ce263fdf"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ECC_CURVE_SECP521R1</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga4e8977c145cce5077c4bce7fec890ad9">psa_ecc_curve_t</a>) 0x0019)</td></tr>
<tr class="separator:ga4482ff6155006ff509071c32ce263fdf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa999b69c56af0cc1cebf4596f8578191"><td class="memItemLeft" align="right" valign="top"><a id="gaa999b69c56af0cc1cebf4596f8578191"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ECC_CURVE_BRAINPOOL_P256R1</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga4e8977c145cce5077c4bce7fec890ad9">psa_ecc_curve_t</a>) 0x001a)</td></tr>
<tr class="separator:gaa999b69c56af0cc1cebf4596f8578191"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga79f95ed8050f2dc7750cbac212c6e687"><td class="memItemLeft" align="right" valign="top"><a id="ga79f95ed8050f2dc7750cbac212c6e687"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ECC_CURVE_BRAINPOOL_P384R1</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga4e8977c145cce5077c4bce7fec890ad9">psa_ecc_curve_t</a>) 0x001b)</td></tr>
<tr class="separator:ga79f95ed8050f2dc7750cbac212c6e687"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa03a2dc6096f336be3d68a1f7405e86c"><td class="memItemLeft" align="right" valign="top"><a id="gaa03a2dc6096f336be3d68a1f7405e86c"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ECC_CURVE_BRAINPOOL_P512R1</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga4e8977c145cce5077c4bce7fec890ad9">psa_ecc_curve_t</a>) 0x001c)</td></tr>
<tr class="separator:gaa03a2dc6096f336be3d68a1f7405e86c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac94faf3b8d9884221541f51f26b11c7a"><td class="memItemLeft" align="right" valign="top"><a id="gac94faf3b8d9884221541f51f26b11c7a"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ECC_CURVE_CURVE25519</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga4e8977c145cce5077c4bce7fec890ad9">psa_ecc_curve_t</a>) 0x001d)</td></tr>
<tr class="separator:gac94faf3b8d9884221541f51f26b11c7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga902b0e91eff920873b3b59c740854305"><td class="memItemLeft" align="right" valign="top"><a id="ga902b0e91eff920873b3b59c740854305"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ECC_CURVE_CURVE448</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga4e8977c145cce5077c4bce7fec890ad9">psa_ecc_curve_t</a>) 0x001e)</td></tr>
<tr class="separator:ga902b0e91eff920873b3b59c740854305"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafef0f861db5bb6cdf025d18cf0fbdbb0"><td class="memItemLeft" align="right" valign="top"><a id="gafef0f861db5bb6cdf025d18cf0fbdbb0"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ECC_CURVE_FFDHE_2048</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga4e8977c145cce5077c4bce7fec890ad9">psa_ecc_curve_t</a>) 0x0100)</td></tr>
<tr class="separator:gafef0f861db5bb6cdf025d18cf0fbdbb0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae69d8c862c26e5aed50e047814e8c27e"><td class="memItemLeft" align="right" valign="top"><a id="gae69d8c862c26e5aed50e047814e8c27e"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ECC_CURVE_FFDHE_3072</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga4e8977c145cce5077c4bce7fec890ad9">psa_ecc_curve_t</a>) 0x0101)</td></tr>
<tr class="separator:gae69d8c862c26e5aed50e047814e8c27e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7d2411ef9ff0f95bd01ca6208368f8e4"><td class="memItemLeft" align="right" valign="top"><a id="ga7d2411ef9ff0f95bd01ca6208368f8e4"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ECC_CURVE_FFDHE_4096</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga4e8977c145cce5077c4bce7fec890ad9">psa_ecc_curve_t</a>) 0x0102)</td></tr>
<tr class="separator:ga7d2411ef9ff0f95bd01ca6208368f8e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9380456dc83ac91a5338d3b5cf48c100"><td class="memItemLeft" align="right" valign="top"><a id="ga9380456dc83ac91a5338d3b5cf48c100"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ECC_CURVE_FFDHE_6144</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga4e8977c145cce5077c4bce7fec890ad9">psa_ecc_curve_t</a>) 0x0103)</td></tr>
<tr class="separator:ga9380456dc83ac91a5338d3b5cf48c100"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga847e2f8d9663ff63025a8cd0d1096655"><td class="memItemLeft" align="right" valign="top"><a id="ga847e2f8d9663ff63025a8cd0d1096655"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ECC_CURVE_FFDHE_8192</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga4e8977c145cce5077c4bce7fec890ad9">psa_ecc_curve_t</a>) 0x0104)</td></tr>
<tr class="separator:ga847e2f8d9663ff63025a8cd0d1096655"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacaa366bdeb0413e63e87a667c5457b2e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#gacaa366bdeb0413e63e87a667c5457b2e">PSA_BLOCK_CIPHER_BLOCK_SIZE</a>(type)</td></tr>
<tr class="separator:gacaa366bdeb0413e63e87a667c5457b2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf5d76750b6cfe3e7f0c8e9eee1162318"><td class="memItemLeft" align="right" valign="top"><a id="gaf5d76750b6cfe3e7f0c8e9eee1162318"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_VENDOR_FLAG</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x80000000)</td></tr>
<tr class="separator:gaf5d76750b6cfe3e7f0c8e9eee1162318"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga25e918c465b4421dbfaedad6b693d110"><td class="memItemLeft" align="right" valign="top"><a id="ga25e918c465b4421dbfaedad6b693d110"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_CATEGORY_MASK</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x7f000000)</td></tr>
<tr class="separator:ga25e918c465b4421dbfaedad6b693d110"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafd048e1835b80e6daaff7fddce699757"><td class="memItemLeft" align="right" valign="top"><a id="gafd048e1835b80e6daaff7fddce699757"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_CATEGORY_HASH</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x01000000)</td></tr>
<tr class="separator:gafd048e1835b80e6daaff7fddce699757"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5e6e0039d0b0d18afb3e13e5b9602b3a"><td class="memItemLeft" align="right" valign="top"><a id="ga5e6e0039d0b0d18afb3e13e5b9602b3a"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_CATEGORY_MAC</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x02000000)</td></tr>
<tr class="separator:ga5e6e0039d0b0d18afb3e13e5b9602b3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga68228a619db59eba93fd13e9129dbfe2"><td class="memItemLeft" align="right" valign="top"><a id="ga68228a619db59eba93fd13e9129dbfe2"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_CATEGORY_CIPHER</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x04000000)</td></tr>
<tr class="separator:ga68228a619db59eba93fd13e9129dbfe2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga37fdd9cac2552f1568f38e091a826549"><td class="memItemLeft" align="right" valign="top"><a id="ga37fdd9cac2552f1568f38e091a826549"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_CATEGORY_AEAD</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x06000000)</td></tr>
<tr class="separator:ga37fdd9cac2552f1568f38e091a826549"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga68a0af1dd89b33fb1e53139f654988f6"><td class="memItemLeft" align="right" valign="top"><a id="ga68a0af1dd89b33fb1e53139f654988f6"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_CATEGORY_SIGN</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x10000000)</td></tr>
<tr class="separator:ga68a0af1dd89b33fb1e53139f654988f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga72f46c8256b760b174e6db61a61cd608"><td class="memItemLeft" align="right" valign="top"><a id="ga72f46c8256b760b174e6db61a61cd608"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_CATEGORY_ASYMMETRIC_ENCRYPTION</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x12000000)</td></tr>
<tr class="separator:ga72f46c8256b760b174e6db61a61cd608"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga808e397a4891c612df4a5b20eebc2fac"><td class="memItemLeft" align="right" valign="top"><a id="ga808e397a4891c612df4a5b20eebc2fac"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_CATEGORY_KEY_AGREEMENT</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x22000000)</td></tr>
<tr class="separator:ga808e397a4891c612df4a5b20eebc2fac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac185b2274dd4e5f0b97c43334c2e478f"><td class="memItemLeft" align="right" valign="top"><a id="gac185b2274dd4e5f0b97c43334c2e478f"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_CATEGORY_KEY_DERIVATION</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x30000000)</td></tr>
<tr class="separator:gac185b2274dd4e5f0b97c43334c2e478f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2396d8ba67096b3ebc69bc351a74c78b"><td class="memItemLeft" align="right" valign="top"><a id="ga2396d8ba67096b3ebc69bc351a74c78b"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_IS_VENDOR_DEFINED</b>(alg)&#160;&#160;&#160;(((alg) &amp; PSA_ALG_VENDOR_FLAG) != 0)</td></tr>
<tr class="separator:ga2396d8ba67096b3ebc69bc351a74c78b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac9280662bb482590b4b33d1dcd32930f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#gac9280662bb482590b4b33d1dcd32930f">PSA_ALG_IS_HASH</a>(alg)&#160;&#160;&#160;(((alg) &amp; PSA_ALG_CATEGORY_MASK) == PSA_ALG_CATEGORY_HASH)</td></tr>
<tr class="separator:gac9280662bb482590b4b33d1dcd32930f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaca7aee4c9dde316b3b1a150a26eab776"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#gaca7aee4c9dde316b3b1a150a26eab776">PSA_ALG_IS_MAC</a>(alg)&#160;&#160;&#160;(((alg) &amp; PSA_ALG_CATEGORY_MASK) == PSA_ALG_CATEGORY_MAC)</td></tr>
<tr class="separator:gaca7aee4c9dde316b3b1a150a26eab776"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1d1a5a402ad89a2e68f12bfb535490eb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#ga1d1a5a402ad89a2e68f12bfb535490eb">PSA_ALG_IS_CIPHER</a>(alg)&#160;&#160;&#160;(((alg) &amp; PSA_ALG_CATEGORY_MASK) == PSA_ALG_CATEGORY_CIPHER)</td></tr>
<tr class="separator:ga1d1a5a402ad89a2e68f12bfb535490eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1d44829d60065eaa4ac9a703e7d6abc8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#ga1d44829d60065eaa4ac9a703e7d6abc8">PSA_ALG_IS_AEAD</a>(alg)&#160;&#160;&#160;(((alg) &amp; PSA_ALG_CATEGORY_MASK) == PSA_ALG_CATEGORY_AEAD)</td></tr>
<tr class="separator:ga1d44829d60065eaa4ac9a703e7d6abc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6d490d0904e0698f6c1268a89d72ff31"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#ga6d490d0904e0698f6c1268a89d72ff31">PSA_ALG_IS_SIGN</a>(alg)&#160;&#160;&#160;(((alg) &amp; PSA_ALG_CATEGORY_MASK) == PSA_ALG_CATEGORY_SIGN)</td></tr>
<tr class="separator:ga6d490d0904e0698f6c1268a89d72ff31"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga41d2ee937d54efd76bd54a97b2ebc08a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#ga41d2ee937d54efd76bd54a97b2ebc08a">PSA_ALG_IS_ASYMMETRIC_ENCRYPTION</a>(alg)&#160;&#160;&#160;(((alg) &amp; PSA_ALG_CATEGORY_MASK) == PSA_ALG_CATEGORY_ASYMMETRIC_ENCRYPTION)</td></tr>
<tr class="separator:ga41d2ee937d54efd76bd54a97b2ebc08a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga59753742cb06553bd22751bbef472b6f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#ga59753742cb06553bd22751bbef472b6f">PSA_ALG_IS_KEY_AGREEMENT</a>(alg)&#160;&#160;&#160;(((alg) &amp; PSA_ALG_CATEGORY_MASK) == PSA_ALG_CATEGORY_KEY_AGREEMENT)</td></tr>
<tr class="separator:ga59753742cb06553bd22751bbef472b6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf8b90c648aa53dbd06c236695e300cd0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#gaf8b90c648aa53dbd06c236695e300cd0">PSA_ALG_IS_KEY_DERIVATION</a>(alg)&#160;&#160;&#160;(((alg) &amp; PSA_ALG_CATEGORY_MASK) == PSA_ALG_CATEGORY_KEY_DERIVATION)</td></tr>
<tr class="separator:gaf8b90c648aa53dbd06c236695e300cd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac41a7077aef55bb20c629c8949d43c57"><td class="memItemLeft" align="right" valign="top"><a id="gac41a7077aef55bb20c629c8949d43c57"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_HASH_MASK</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x000000ff)</td></tr>
<tr class="separator:gac41a7077aef55bb20c629c8949d43c57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab076ca67238cb4ebd81556db8f3dbac1"><td class="memItemLeft" align="right" valign="top"><a id="gab076ca67238cb4ebd81556db8f3dbac1"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_MD2</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x01000001)</td></tr>
<tr class="separator:gab076ca67238cb4ebd81556db8f3dbac1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaac7ab8c28c117ef4ddf01affc8d3ceb2"><td class="memItemLeft" align="right" valign="top"><a id="gaac7ab8c28c117ef4ddf01affc8d3ceb2"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_MD4</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x01000002)</td></tr>
<tr class="separator:gaac7ab8c28c117ef4ddf01affc8d3ceb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gade591d9286d23382eb5cec099c84180d"><td class="memItemLeft" align="right" valign="top"><a id="gade591d9286d23382eb5cec099c84180d"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_MD5</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x01000003)</td></tr>
<tr class="separator:gade591d9286d23382eb5cec099c84180d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6c5d3a32cda59086f07b85ef007033dd"><td class="memItemLeft" align="right" valign="top"><a id="ga6c5d3a32cda59086f07b85ef007033dd"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_RIPEMD160</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x01000004)</td></tr>
<tr class="separator:ga6c5d3a32cda59086f07b85ef007033dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3fca4e9f9ad4a1158817d1850dee82e5"><td class="memItemLeft" align="right" valign="top"><a id="ga3fca4e9f9ad4a1158817d1850dee82e5"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_SHA_1</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x01000005)</td></tr>
<tr class="separator:ga3fca4e9f9ad4a1158817d1850dee82e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga25d6a3244d10a7148fe6b026d1979f7b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#ga25d6a3244d10a7148fe6b026d1979f7b">PSA_ALG_SHA_224</a>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x01000008)</td></tr>
<tr class="separator:ga25d6a3244d10a7148fe6b026d1979f7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga619471f978e13cdd0a1e37145e4bf341"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#ga619471f978e13cdd0a1e37145e4bf341">PSA_ALG_SHA_256</a>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x01000009)</td></tr>
<tr class="separator:ga619471f978e13cdd0a1e37145e4bf341"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga58af64dd9a86a287e8da9ed7739eead4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#ga58af64dd9a86a287e8da9ed7739eead4">PSA_ALG_SHA_384</a>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x0100000a)</td></tr>
<tr class="separator:ga58af64dd9a86a287e8da9ed7739eead4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafba3ae409f46d3dd7f37a0910660c3e9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#gafba3ae409f46d3dd7f37a0910660c3e9">PSA_ALG_SHA_512</a>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x0100000b)</td></tr>
<tr class="separator:gafba3ae409f46d3dd7f37a0910660c3e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3fe2d7c3c80e3186ca78d16a35d5d931"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#ga3fe2d7c3c80e3186ca78d16a35d5d931">PSA_ALG_SHA_512_224</a>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x0100000c)</td></tr>
<tr class="separator:ga3fe2d7c3c80e3186ca78d16a35d5d931"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5910b3964c14e9613e8643a45b09c2d4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#ga5910b3964c14e9613e8643a45b09c2d4">PSA_ALG_SHA_512_256</a>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x0100000d)</td></tr>
<tr class="separator:ga5910b3964c14e9613e8643a45b09c2d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga16f5fe34ccce68c2fada1224c054a999"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#ga16f5fe34ccce68c2fada1224c054a999">PSA_ALG_SHA3_224</a>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x01000010)</td></tr>
<tr class="separator:ga16f5fe34ccce68c2fada1224c054a999"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaace70d9515489bbe3c5e7ac1b7d9155b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#gaace70d9515489bbe3c5e7ac1b7d9155b">PSA_ALG_SHA3_256</a>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x01000011)</td></tr>
<tr class="separator:gaace70d9515489bbe3c5e7ac1b7d9155b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab0f079257ea75e2acfe2fc3b38c78cd8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#gab0f079257ea75e2acfe2fc3b38c78cd8">PSA_ALG_SHA3_384</a>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x01000012)</td></tr>
<tr class="separator:gab0f079257ea75e2acfe2fc3b38c78cd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga37e5dbe936dddb155e76f2997de27188"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#ga37e5dbe936dddb155e76f2997de27188">PSA_ALG_SHA3_512</a>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x01000013)</td></tr>
<tr class="separator:ga37e5dbe936dddb155e76f2997de27188"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabba3fcfee55533b0e25350e78a942e07"><td class="memItemLeft" align="right" valign="top"><a id="gabba3fcfee55533b0e25350e78a942e07"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_MAC_SUBCATEGORY_MASK</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x00c00000)</td></tr>
<tr class="separator:gabba3fcfee55533b0e25350e78a942e07"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0675192b82720fb8c9037a95bdeb6c88"><td class="memItemLeft" align="right" valign="top"><a id="ga0675192b82720fb8c9037a95bdeb6c88"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_HMAC_BASE</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x02800000)</td></tr>
<tr class="separator:ga0675192b82720fb8c9037a95bdeb6c88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga70f397425684b3efcde1e0e34c28261f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#ga70f397425684b3efcde1e0e34c28261f">PSA_ALG_HMAC</a>(hash_alg)&#160;&#160;&#160;(PSA_ALG_HMAC_BASE | ((hash_alg) &amp; PSA_ALG_HASH_MASK))</td></tr>
<tr class="separator:ga70f397425684b3efcde1e0e34c28261f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6ac4f9564237dfd8d28e988da41bc931"><td class="memItemLeft" align="right" valign="top"><a id="ga6ac4f9564237dfd8d28e988da41bc931"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_HMAC_HASH</b>(hmac_alg)&#160;&#160;&#160;(PSA_ALG_CATEGORY_HASH | ((hmac_alg) &amp; PSA_ALG_HASH_MASK))</td></tr>
<tr class="separator:ga6ac4f9564237dfd8d28e988da41bc931"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4a050c3c3cbc6eb96418f18847601c8a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#ga4a050c3c3cbc6eb96418f18847601c8a">PSA_ALG_IS_HMAC</a>(alg)</td></tr>
<tr class="separator:ga4a050c3c3cbc6eb96418f18847601c8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaee0c29980b08305f6d0e7b3fbb588ade"><td class="memItemLeft" align="right" valign="top"><a id="gaee0c29980b08305f6d0e7b3fbb588ade"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_CIPHER_MAC_BASE</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x02c00000)</td></tr>
<tr class="separator:gaee0c29980b08305f6d0e7b3fbb588ade"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga20bdc755de7b90f6621ccb1e6bb5d9e1"><td class="memItemLeft" align="right" valign="top"><a id="ga20bdc755de7b90f6621ccb1e6bb5d9e1"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_CBC_MAC</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x02c00001)</td></tr>
<tr class="separator:ga20bdc755de7b90f6621ccb1e6bb5d9e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga146328a1e0023a02464e232d6ecefdc2"><td class="memItemLeft" align="right" valign="top"><a id="ga146328a1e0023a02464e232d6ecefdc2"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_CMAC</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x02c00002)</td></tr>
<tr class="separator:ga146328a1e0023a02464e232d6ecefdc2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga69a012ce150219a2d97c3ab5582f0004"><td class="memItemLeft" align="right" valign="top"><a id="ga69a012ce150219a2d97c3ab5582f0004"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_GMAC</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x02c00003)</td></tr>
<tr class="separator:ga69a012ce150219a2d97c3ab5582f0004"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8986360ff97dbd91f220edf9202e375d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#ga8986360ff97dbd91f220edf9202e375d">PSA_ALG_IS_CIPHER_MAC</a>(alg)</td></tr>
<tr class="separator:ga8986360ff97dbd91f220edf9202e375d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5e09871380b1dd62be19732b4736313b"><td class="memItemLeft" align="right" valign="top"><a id="ga5e09871380b1dd62be19732b4736313b"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_CIPHER_SUBCATEGORY_MASK</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x00c00000)</td></tr>
<tr class="separator:ga5e09871380b1dd62be19732b4736313b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8441c6d5dfe158d2d8a7540a9a0ebb39"><td class="memItemLeft" align="right" valign="top"><a id="ga8441c6d5dfe158d2d8a7540a9a0ebb39"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_BLOCK_CIPHER_BASE</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x04000000)</td></tr>
<tr class="separator:ga8441c6d5dfe158d2d8a7540a9a0ebb39"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6bd5e2da108ecb82ac6fd3eb746424ef"><td class="memItemLeft" align="right" valign="top"><a id="ga6bd5e2da108ecb82ac6fd3eb746424ef"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_BLOCK_CIPHER_MODE_MASK</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x000000ff)</td></tr>
<tr class="separator:ga6bd5e2da108ecb82ac6fd3eb746424ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga61c792645f8e5aa42fc8b3392fe53231"><td class="memItemLeft" align="right" valign="top"><a id="ga61c792645f8e5aa42fc8b3392fe53231"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_BLOCK_CIPHER_PADDING_MASK</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x003f0000)</td></tr>
<tr class="separator:ga61c792645f8e5aa42fc8b3392fe53231"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0992d26a02a2a7dc316cd5abc5254966"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#ga0992d26a02a2a7dc316cd5abc5254966">PSA_ALG_BLOCK_CIPHER_PAD_NONE</a>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x00000000)</td></tr>
<tr class="separator:ga0992d26a02a2a7dc316cd5abc5254966"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga40066e494138ef20dfc8de22825b4057"><td class="memItemLeft" align="right" valign="top"><a id="ga40066e494138ef20dfc8de22825b4057"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_BLOCK_CIPHER_PAD_PKCS7</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x00010000)</td></tr>
<tr class="separator:ga40066e494138ef20dfc8de22825b4057"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga02e787d79c0cd666efcd090569d5b31c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#ga02e787d79c0cd666efcd090569d5b31c">PSA_ALG_IS_BLOCK_CIPHER</a>(alg)</td></tr>
<tr class="separator:ga02e787d79c0cd666efcd090569d5b31c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga931f31d4f05c3dab9fd5d7fdcd3715f2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#ga931f31d4f05c3dab9fd5d7fdcd3715f2">PSA_ALG_CBC_BASE</a>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x04000001)</td></tr>
<tr class="separator:ga931f31d4f05c3dab9fd5d7fdcd3715f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa04cf3217f724b219f2a054b98c554fe"><td class="memItemLeft" align="right" valign="top"><a id="gaa04cf3217f724b219f2a054b98c554fe"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_CFB_BASE</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x04000002)</td></tr>
<tr class="separator:gaa04cf3217f724b219f2a054b98c554fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7a1c7906c13a78ad62463c2b68869999"><td class="memItemLeft" align="right" valign="top"><a id="ga7a1c7906c13a78ad62463c2b68869999"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_OFB_BASE</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x04000003)</td></tr>
<tr class="separator:ga7a1c7906c13a78ad62463c2b68869999"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga914d820b488366067023ba6ed363ee83"><td class="memItemLeft" align="right" valign="top"><a id="ga914d820b488366067023ba6ed363ee83"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_XTS_BASE</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x04000004)</td></tr>
<tr class="separator:ga914d820b488366067023ba6ed363ee83"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaff1ae6bbbe3898273035c237731a6ed6"><td class="memItemLeft" align="right" valign="top"><a id="gaff1ae6bbbe3898273035c237731a6ed6"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_STREAM_CIPHER_BASE</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x04800000)</td></tr>
<tr class="separator:gaff1ae6bbbe3898273035c237731a6ed6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad318309706a769cffdc64e4c7e06b2e9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#gad318309706a769cffdc64e4c7e06b2e9">PSA_ALG_CTR</a>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x04800001)</td></tr>
<tr class="separator:gad318309706a769cffdc64e4c7e06b2e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab6a5284decb0e5e1b5b8740a41ef3c5e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#gab6a5284decb0e5e1b5b8740a41ef3c5e">PSA_ALG_ARC4</a>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x04800002)</td></tr>
<tr class="separator:gab6a5284decb0e5e1b5b8740a41ef3c5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacfec68e0c6175e02e1b2ebc97df383c0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#gacfec68e0c6175e02e1b2ebc97df383c0">PSA_ALG_IS_STREAM_CIPHER</a>(alg)</td></tr>
<tr class="separator:gacfec68e0c6175e02e1b2ebc97df383c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac2c0e7d21f1b2df5e76bcb4a8f84273c"><td class="memItemLeft" align="right" valign="top"><a id="gac2c0e7d21f1b2df5e76bcb4a8f84273c"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_CCM</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x06000001)</td></tr>
<tr class="separator:gac2c0e7d21f1b2df5e76bcb4a8f84273c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0d7d02b15aaae490d38277d99f1c637c"><td class="memItemLeft" align="right" valign="top"><a id="ga0d7d02b15aaae490d38277d99f1c637c"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_GCM</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x06000002)</td></tr>
<tr class="separator:ga0d7d02b15aaae490d38277d99f1c637c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga819b23c9899e92e9f867c7b2ae8f264c"><td class="memItemLeft" align="right" valign="top"><a id="ga819b23c9899e92e9f867c7b2ae8f264c"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_RSA_PKCS1V15_SIGN_BASE</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x10020000)</td></tr>
<tr class="separator:ga819b23c9899e92e9f867c7b2ae8f264c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga702ff75385a6ae7d4247033f479439af"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#ga702ff75385a6ae7d4247033f479439af">PSA_ALG_RSA_PKCS1V15_SIGN</a>(hash_alg)&#160;&#160;&#160;(PSA_ALG_RSA_PKCS1V15_SIGN_BASE | ((hash_alg) &amp; PSA_ALG_HASH_MASK))</td></tr>
<tr class="separator:ga702ff75385a6ae7d4247033f479439af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4215e2a78dcf834e9a625927faa2a817"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#ga4215e2a78dcf834e9a625927faa2a817">PSA_ALG_RSA_PKCS1V15_SIGN_RAW</a>&#160;&#160;&#160;PSA_ALG_RSA_PKCS1V15_SIGN_BASE</td></tr>
<tr class="separator:ga4215e2a78dcf834e9a625927faa2a817"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9d545279f23d43b1b2a744d0dd6826d0"><td class="memItemLeft" align="right" valign="top"><a id="ga9d545279f23d43b1b2a744d0dd6826d0"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_IS_RSA_PKCS1V15_SIGN</b>(alg)&#160;&#160;&#160;(((alg) &amp; ~PSA_ALG_HASH_MASK) == PSA_ALG_RSA_PKCS1V15_SIGN_BASE)</td></tr>
<tr class="separator:ga9d545279f23d43b1b2a744d0dd6826d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga49d39a343790971b7a74644f4faea0c0"><td class="memItemLeft" align="right" valign="top"><a id="ga49d39a343790971b7a74644f4faea0c0"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_RSA_PSS_BASE</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x10030000)</td></tr>
<tr class="separator:ga49d39a343790971b7a74644f4faea0c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga62152bf4cb4bf6aace5e1be8f143564d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#ga62152bf4cb4bf6aace5e1be8f143564d">PSA_ALG_RSA_PSS</a>(hash_alg)&#160;&#160;&#160;(PSA_ALG_RSA_PSS_BASE | ((hash_alg) &amp; PSA_ALG_HASH_MASK))</td></tr>
<tr class="separator:ga62152bf4cb4bf6aace5e1be8f143564d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafa04fae7393a76d5161558768cb82a78"><td class="memItemLeft" align="right" valign="top"><a id="gafa04fae7393a76d5161558768cb82a78"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_IS_RSA_PSS</b>(alg)&#160;&#160;&#160;(((alg) &amp; ~PSA_ALG_HASH_MASK) == PSA_ALG_RSA_PSS_BASE)</td></tr>
<tr class="separator:gafa04fae7393a76d5161558768cb82a78"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga863284106894476e3a8524805410b55b"><td class="memItemLeft" align="right" valign="top"><a id="ga863284106894476e3a8524805410b55b"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_DSA_BASE</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x10040000)</td></tr>
<tr class="separator:ga863284106894476e3a8524805410b55b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9a68efdddff5ae95f104a1416b12742e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#ga9a68efdddff5ae95f104a1416b12742e">PSA_ALG_DSA</a>(hash_alg)&#160;&#160;&#160;(PSA_ALG_DSA_BASE | ((hash_alg) &amp; PSA_ALG_HASH_MASK))</td></tr>
<tr class="separator:ga9a68efdddff5ae95f104a1416b12742e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad3800dafc62d6a17bcae4bce98402e68"><td class="memItemLeft" align="right" valign="top"><a id="gad3800dafc62d6a17bcae4bce98402e68"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_DETERMINISTIC_DSA_BASE</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x10050000)</td></tr>
<tr class="separator:gad3800dafc62d6a17bcae4bce98402e68"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1d2a96f788cce4f8fc156d13342e70de"><td class="memItemLeft" align="right" valign="top"><a id="ga1d2a96f788cce4f8fc156d13342e70de"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_DSA_DETERMINISTIC_FLAG</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x00010000)</td></tr>
<tr class="separator:ga1d2a96f788cce4f8fc156d13342e70de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab8eb98fb6d2e094e47f3b44dfe128f94"><td class="memItemLeft" align="right" valign="top"><a id="gab8eb98fb6d2e094e47f3b44dfe128f94"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_DETERMINISTIC_DSA</b>(hash_alg)&#160;&#160;&#160;(PSA_ALG_DETERMINISTIC_DSA_BASE | ((hash_alg) &amp; PSA_ALG_HASH_MASK))</td></tr>
<tr class="separator:gab8eb98fb6d2e094e47f3b44dfe128f94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacfc3cd50ef0c4bf694cf936079bcbaee"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_IS_DSA</b>(alg)</td></tr>
<tr class="separator:gacfc3cd50ef0c4bf694cf936079bcbaee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae01ae792228c16eac05102f8e900efd1"><td class="memItemLeft" align="right" valign="top"><a id="gae01ae792228c16eac05102f8e900efd1"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_DSA_IS_DETERMINISTIC</b>(alg)&#160;&#160;&#160;(((alg) &amp; PSA_ALG_DSA_DETERMINISTIC_FLAG) != 0)</td></tr>
<tr class="separator:gae01ae792228c16eac05102f8e900efd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga11f7d6fe7a4441143ed398420b7d1980"><td class="memItemLeft" align="right" valign="top"><a id="ga11f7d6fe7a4441143ed398420b7d1980"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_IS_DETERMINISTIC_DSA</b>(alg)&#160;&#160;&#160;(PSA_ALG_IS_DSA(alg) &amp;&amp; PSA_ALG_DSA_IS_DETERMINISTIC(alg))</td></tr>
<tr class="separator:ga11f7d6fe7a4441143ed398420b7d1980"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga474c0582c4726d0c0274e470f4199cf9"><td class="memItemLeft" align="right" valign="top"><a id="ga474c0582c4726d0c0274e470f4199cf9"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_IS_RANDOMIZED_DSA</b>(alg)&#160;&#160;&#160;(PSA_ALG_IS_DSA(alg) &amp;&amp; !PSA_ALG_DSA_IS_DETERMINISTIC(alg))</td></tr>
<tr class="separator:ga474c0582c4726d0c0274e470f4199cf9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafd9800fdbe6ea881e0ac0ce03d145928"><td class="memItemLeft" align="right" valign="top"><a id="gafd9800fdbe6ea881e0ac0ce03d145928"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_ECDSA_BASE</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x10060000)</td></tr>
<tr class="separator:gafd9800fdbe6ea881e0ac0ce03d145928"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7e3ce9f514a227d5ba5d8318870452e3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#ga7e3ce9f514a227d5ba5d8318870452e3">PSA_ALG_ECDSA</a>(hash_alg)&#160;&#160;&#160;(PSA_ALG_ECDSA_BASE | ((hash_alg) &amp; PSA_ALG_HASH_MASK))</td></tr>
<tr class="separator:ga7e3ce9f514a227d5ba5d8318870452e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga51d6b6044a62e33cae0cf64bfc3b22a4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#ga51d6b6044a62e33cae0cf64bfc3b22a4">PSA_ALG_ECDSA_ANY</a>&#160;&#160;&#160;PSA_ALG_ECDSA_BASE</td></tr>
<tr class="separator:ga51d6b6044a62e33cae0cf64bfc3b22a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6c08b65200140aeb46ee9db9c8ed878c"><td class="memItemLeft" align="right" valign="top"><a id="ga6c08b65200140aeb46ee9db9c8ed878c"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_DETERMINISTIC_ECDSA_BASE</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x10070000)</td></tr>
<tr class="separator:ga6c08b65200140aeb46ee9db9c8ed878c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga11da566bcd341661c8de921e2ca5ed03"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#ga11da566bcd341661c8de921e2ca5ed03">PSA_ALG_DETERMINISTIC_ECDSA</a>(hash_alg)&#160;&#160;&#160;(PSA_ALG_DETERMINISTIC_ECDSA_BASE | ((hash_alg) &amp; PSA_ALG_HASH_MASK))</td></tr>
<tr class="separator:ga11da566bcd341661c8de921e2ca5ed03"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafb92dc138c9d2388033ff5fc1dab7b48"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_IS_ECDSA</b>(alg)</td></tr>
<tr class="separator:gafb92dc138c9d2388033ff5fc1dab7b48"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaced29d8e3a1740aaec01e9ef8211df4f"><td class="memItemLeft" align="right" valign="top"><a id="gaced29d8e3a1740aaec01e9ef8211df4f"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_ECDSA_IS_DETERMINISTIC</b>(alg)&#160;&#160;&#160;(((alg) &amp; PSA_ALG_DSA_DETERMINISTIC_FLAG) != 0)</td></tr>
<tr class="separator:gaced29d8e3a1740aaec01e9ef8211df4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacd8766fe0fb8c1e2d32644e0d092c43a"><td class="memItemLeft" align="right" valign="top"><a id="gacd8766fe0fb8c1e2d32644e0d092c43a"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_IS_DETERMINISTIC_ECDSA</b>(alg)&#160;&#160;&#160;(PSA_ALG_IS_ECDSA(alg) &amp;&amp; PSA_ALG_ECDSA_IS_DETERMINISTIC(alg))</td></tr>
<tr class="separator:gacd8766fe0fb8c1e2d32644e0d092c43a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae7b0fafebd139f6f815285b7cad622ea"><td class="memItemLeft" align="right" valign="top"><a id="gae7b0fafebd139f6f815285b7cad622ea"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_IS_RANDOMIZED_ECDSA</b>(alg)&#160;&#160;&#160;(PSA_ALG_IS_ECDSA(alg) &amp;&amp; !PSA_ALG_ECDSA_IS_DETERMINISTIC(alg))</td></tr>
<tr class="separator:gae7b0fafebd139f6f815285b7cad622ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga24cf6d7bcd2b9aeeeff86f07b6c674e3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#ga24cf6d7bcd2b9aeeeff86f07b6c674e3">PSA_ALG_SIGN_GET_HASH</a>(alg)</td></tr>
<tr class="separator:ga24cf6d7bcd2b9aeeeff86f07b6c674e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4c540d3abe43fb9abcb94f2bc51acef9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#ga4c540d3abe43fb9abcb94f2bc51acef9">PSA_ALG_RSA_PKCS1V15_CRYPT</a>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x12020000)</td></tr>
<tr class="separator:ga4c540d3abe43fb9abcb94f2bc51acef9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga67ba62fbd154f5d3098866ae68ba66eb"><td class="memItemLeft" align="right" valign="top"><a id="ga67ba62fbd154f5d3098866ae68ba66eb"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_RSA_OAEP_BASE</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x12030000)</td></tr>
<tr class="separator:ga67ba62fbd154f5d3098866ae68ba66eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa1235dc3fdd9839c6c1b1a9857344c76"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#gaa1235dc3fdd9839c6c1b1a9857344c76">PSA_ALG_RSA_OAEP</a>(hash_alg)&#160;&#160;&#160;(PSA_ALG_RSA_OAEP_BASE | ((hash_alg) &amp; PSA_ALG_HASH_MASK))</td></tr>
<tr class="separator:gaa1235dc3fdd9839c6c1b1a9857344c76"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9a85c05fd5c39ca63bbc47fb0755da39"><td class="memItemLeft" align="right" valign="top"><a id="ga9a85c05fd5c39ca63bbc47fb0755da39"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_IS_RSA_OAEP</b>(alg)&#160;&#160;&#160;(((alg) &amp; ~PSA_ALG_HASH_MASK) == PSA_ALG_RSA_OAEP_BASE)</td></tr>
<tr class="separator:ga9a85c05fd5c39ca63bbc47fb0755da39"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae6b0b87aabe82a1b3113824f022c52e8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_RSA_OAEP_GET_HASH</b>(alg)</td></tr>
<tr class="separator:gae6b0b87aabe82a1b3113824f022c52e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga85fe668f95a1e65b573dc5acb798be6f"><td class="memItemLeft" align="right" valign="top"><a id="ga85fe668f95a1e65b573dc5acb798be6f"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_HKDF_BASE</b>&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x30000100)</td></tr>
<tr class="separator:ga85fe668f95a1e65b573dc5acb798be6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga32a888fb360e6e25cab8a343772c4a82"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#ga32a888fb360e6e25cab8a343772c4a82">PSA_ALG_HKDF</a>(hash_alg)&#160;&#160;&#160;(PSA_ALG_HKDF_BASE | ((hash_alg) &amp; PSA_ALG_HASH_MASK))</td></tr>
<tr class="separator:ga32a888fb360e6e25cab8a343772c4a82"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1979d0a76fcee6164cf2e65960f38db2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#ga1979d0a76fcee6164cf2e65960f38db2">PSA_ALG_IS_HKDF</a>(alg)&#160;&#160;&#160;(((alg) &amp; ~PSA_ALG_HASH_MASK) == PSA_ALG_HKDF_BASE)</td></tr>
<tr class="separator:ga1979d0a76fcee6164cf2e65960f38db2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga643df48b529b176995927b697ff07a4c"><td class="memItemLeft" align="right" valign="top"><a id="ga643df48b529b176995927b697ff07a4c"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PSA_ALG_HKDF_GET_HASH</b>(hkdf_alg)&#160;&#160;&#160;(PSA_ALG_CATEGORY_HASH | ((hkdf_alg) &amp; PSA_ALG_HASH_MASK))</td></tr>
<tr class="separator:ga643df48b529b176995927b697ff07a4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga578159487dfc7096cb191b0d2befe628"><td class="memItemLeft" align="right" valign="top"><a id="ga578159487dfc7096cb191b0d2befe628"></a>
typedef uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#ga578159487dfc7096cb191b0d2befe628">psa_key_type_t</a></td></tr>
<tr class="memdesc:ga578159487dfc7096cb191b0d2befe628"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encoding of a key type. <br /></td></tr>
<tr class="separator:ga578159487dfc7096cb191b0d2befe628"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4e8977c145cce5077c4bce7fec890ad9"><td class="memItemLeft" align="right" valign="top">typedef uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#ga4e8977c145cce5077c4bce7fec890ad9">psa_ecc_curve_t</a></td></tr>
<tr class="separator:ga4e8977c145cce5077c4bce7fec890ad9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac2e4d47f1300d73c2f829a6d99252d69"><td class="memItemLeft" align="right" valign="top">typedef uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a></td></tr>
<tr class="memdesc:gac2e4d47f1300d73c2f829a6d99252d69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encoding of a cryptographic algorithm.  <a href="#gac2e4d47f1300d73c2f829a6d99252d69">More...</a><br /></td></tr>
<tr class="separator:gac2e4d47f1300d73c2f829a6d99252d69"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="gab6a5284decb0e5e1b5b8740a41ef3c5e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab6a5284decb0e5e1b5b8740a41ef3c5e">&#9670;&nbsp;</a></span>PSA_ALG_ARC4</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_ALG_ARC4&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x04800002)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The ARC4 stream cipher algorithm. </p>

</div>
</div>
<a id="ga0992d26a02a2a7dc316cd5abc5254966"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0992d26a02a2a7dc316cd5abc5254966">&#9670;&nbsp;</a></span>PSA_ALG_BLOCK_CIPHER_PAD_NONE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_ALG_BLOCK_CIPHER_PAD_NONE&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x00000000)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Use a block cipher mode without padding.</p>
<p>This padding mode may only be used with messages whose lengths are a whole number of blocks for the chosen block cipher. </p>

</div>
</div>
<a id="ga931f31d4f05c3dab9fd5d7fdcd3715f2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga931f31d4f05c3dab9fd5d7fdcd3715f2">&#9670;&nbsp;</a></span>PSA_ALG_CBC_BASE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_ALG_CBC_BASE&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x04000001)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The CBC block cipher mode. </p>

</div>
</div>
<a id="gad318309706a769cffdc64e4c7e06b2e9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad318309706a769cffdc64e4c7e06b2e9">&#9670;&nbsp;</a></span>PSA_ALG_CTR</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_ALG_CTR&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x04800001)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The CTR stream cipher mode.</p>
<p>CTR is a stream cipher which is built from a block cipher. The underlying block cipher is determined by the key type. For example, to use AES-128-CTR, use this algorithm with a key of type <a class="el" href="group__crypto__types.html#ga6ee54579dcf278c677eda4bb1a29575e">PSA_KEY_TYPE_AES</a> and a length of 128 bits (16 bytes). </p>

</div>
</div>
<a id="ga11da566bcd341661c8de921e2ca5ed03"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga11da566bcd341661c8de921e2ca5ed03">&#9670;&nbsp;</a></span>PSA_ALG_DETERMINISTIC_ECDSA</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_ALG_DETERMINISTIC_ECDSA</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">hash_alg</td><td>)</td>
          <td>&#160;&#160;&#160;(PSA_ALG_DETERMINISTIC_ECDSA_BASE | ((hash_alg) &amp; PSA_ALG_HASH_MASK))</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Deterministic ECDSA signature with hashing.</p>
<p>This is the deterministic ECDSA signature scheme defined by RFC 6979.</p>
<p>The representation of a signature is the same as with <a class="el" href="group__crypto__types.html#ga7e3ce9f514a227d5ba5d8318870452e3">PSA_ALG_ECDSA()</a>.</p>
<p>Note that when this algorithm is used for verification, signatures made with randomized ECDSA (<a class="el" href="group__crypto__types.html#ga7e3ce9f514a227d5ba5d8318870452e3">PSA_ALG_ECDSA</a>(<code>hash_alg</code>)) with the same private key are accepted. In other words, <a class="el" href="group__crypto__types.html#ga11da566bcd341661c8de921e2ca5ed03">PSA_ALG_DETERMINISTIC_ECDSA</a>(<code>hash_alg</code>) differs from <a class="el" href="group__crypto__types.html#ga7e3ce9f514a227d5ba5d8318870452e3">PSA_ALG_ECDSA</a>(<code>hash_alg</code>) only for signature, not for verification.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">hash_alg</td><td>A hash algorithm (<code>PSA_ALG_XXX</code> value such that <a class="el" href="group__crypto__types.html#gac9280662bb482590b4b33d1dcd32930f">PSA_ALG_IS_HASH</a>(<code>hash_alg</code>) is true).</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The corresponding deterministic ECDSA signature algorithm. </dd>
<dd>
Unspecified if <code>alg</code> is not a supported hash algorithm. </dd></dl>

</div>
</div>
<a id="ga9a68efdddff5ae95f104a1416b12742e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9a68efdddff5ae95f104a1416b12742e">&#9670;&nbsp;</a></span>PSA_ALG_DSA</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_ALG_DSA</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">hash_alg</td><td>)</td>
          <td>&#160;&#160;&#160;(PSA_ALG_DSA_BASE | ((hash_alg) &amp; PSA_ALG_HASH_MASK))</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>DSA signature with hashing.</p>
<p>This is the signature scheme defined by FIPS 186-4, with a random per-message secret number (<em>k</em>).</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">hash_alg</td><td>A hash algorithm (<code>PSA_ALG_XXX</code> value such that <a class="el" href="group__crypto__types.html#gac9280662bb482590b4b33d1dcd32930f">PSA_ALG_IS_HASH</a>(<code>hash_alg</code>) is true).</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The corresponding DSA signature algorithm. </dd>
<dd>
Unspecified if <code>alg</code> is not a supported hash algorithm. </dd></dl>

</div>
</div>
<a id="ga7e3ce9f514a227d5ba5d8318870452e3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7e3ce9f514a227d5ba5d8318870452e3">&#9670;&nbsp;</a></span>PSA_ALG_ECDSA</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_ALG_ECDSA</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">hash_alg</td><td>)</td>
          <td>&#160;&#160;&#160;(PSA_ALG_ECDSA_BASE | ((hash_alg) &amp; PSA_ALG_HASH_MASK))</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>ECDSA signature with hashing.</p>
<p>This is the ECDSA signature scheme defined by ANSI X9.62, with a random per-message secret number (<em>k</em>).</p>
<p>The representation of the signature as a byte string consists of the concatentation of the signature values <em>r</em> and <em>s</em>. Each of <em>r</em> and <em>s</em> is encoded as an <em>N</em>-octet string, where <em>N</em> is the length of the base point of the curve in octets. Each value is represented in big-endian order (most significant octet first).</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">hash_alg</td><td>A hash algorithm (<code>PSA_ALG_XXX</code> value such that <a class="el" href="group__crypto__types.html#gac9280662bb482590b4b33d1dcd32930f">PSA_ALG_IS_HASH</a>(<code>hash_alg</code>) is true).</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The corresponding ECDSA signature algorithm. </dd>
<dd>
Unspecified if <code>alg</code> is not a supported hash algorithm. </dd></dl>

</div>
</div>
<a id="ga51d6b6044a62e33cae0cf64bfc3b22a4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga51d6b6044a62e33cae0cf64bfc3b22a4">&#9670;&nbsp;</a></span>PSA_ALG_ECDSA_ANY</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_ALG_ECDSA_ANY&#160;&#160;&#160;PSA_ALG_ECDSA_BASE</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>ECDSA signature without hashing.</p>
<p>This is the same signature scheme as <a class="el" href="group__crypto__types.html#ga7e3ce9f514a227d5ba5d8318870452e3">PSA_ALG_ECDSA()</a>, but without specifying a hash algorithm. This algorithm may only be used to sign or verify a sequence of bytes that should be an already-calculated hash. Note that the input is padded with zeros on the left or truncated on the left as required to fit the curve size. </p>

</div>
</div>
<a id="ga32a888fb360e6e25cab8a343772c4a82"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga32a888fb360e6e25cab8a343772c4a82">&#9670;&nbsp;</a></span>PSA_ALG_HKDF</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_ALG_HKDF</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">hash_alg</td><td>)</td>
          <td>&#160;&#160;&#160;(PSA_ALG_HKDF_BASE | ((hash_alg) &amp; PSA_ALG_HASH_MASK))</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Macro to build an HKDF algorithm.</p>
<p>For example, <code><a class="el" href="group__crypto__types.html#ga32a888fb360e6e25cab8a343772c4a82">PSA_ALG_HKDF(PSA_ALG_SHA256)</a></code> is HKDF using HMAC-SHA-256.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">hash_alg</td><td>A hash algorithm (<code>PSA_ALG_XXX</code> value such that <a class="el" href="group__crypto__types.html#gac9280662bb482590b4b33d1dcd32930f">PSA_ALG_IS_HASH</a>(<code>hash_alg</code>) is true).</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The corresponding HKDF algorithm. </dd>
<dd>
Unspecified if <code>alg</code> is not a supported hash algorithm. </dd></dl>

</div>
</div>
<a id="ga70f397425684b3efcde1e0e34c28261f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga70f397425684b3efcde1e0e34c28261f">&#9670;&nbsp;</a></span>PSA_ALG_HMAC</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_ALG_HMAC</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">hash_alg</td><td>)</td>
          <td>&#160;&#160;&#160;(PSA_ALG_HMAC_BASE | ((hash_alg) &amp; PSA_ALG_HASH_MASK))</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Macro to build an HMAC algorithm.</p>
<p>For example, <a class="el" href="group__crypto__types.html#ga70f397425684b3efcde1e0e34c28261f">PSA_ALG_HMAC</a>(<a class="el" href="group__crypto__types.html#ga619471f978e13cdd0a1e37145e4bf341">PSA_ALG_SHA_256</a>) is HMAC-SHA-256.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">hash_alg</td><td>A hash algorithm (<code>PSA_ALG_XXX</code> value such that <a class="el" href="group__crypto__types.html#gac9280662bb482590b4b33d1dcd32930f">PSA_ALG_IS_HASH</a>(<code>hash_alg</code>) is true).</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The corresponding HMAC algorithm. </dd>
<dd>
Unspecified if <code>alg</code> is not a supported hash algorithm. </dd></dl>

</div>
</div>
<a id="ga1d44829d60065eaa4ac9a703e7d6abc8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1d44829d60065eaa4ac9a703e7d6abc8">&#9670;&nbsp;</a></span>PSA_ALG_IS_AEAD</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_ALG_IS_AEAD</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">alg</td><td>)</td>
          <td>&#160;&#160;&#160;(((alg) &amp; PSA_ALG_CATEGORY_MASK) == PSA_ALG_CATEGORY_AEAD)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Whether the specified algorithm is an authenticated encryption with associated data (AEAD) algorithm.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">alg</td><td>An algorithm identifier (value of type <a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69" title="Encoding of a cryptographic algorithm. ">psa_algorithm_t</a>).</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 if <code>alg</code> is an AEAD algorithm, 0 otherwise. This macro may return either 0 or 1 if <code>alg</code> is not a supported algorithm identifier. </dd></dl>

</div>
</div>
<a id="ga41d2ee937d54efd76bd54a97b2ebc08a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga41d2ee937d54efd76bd54a97b2ebc08a">&#9670;&nbsp;</a></span>PSA_ALG_IS_ASYMMETRIC_ENCRYPTION</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_ALG_IS_ASYMMETRIC_ENCRYPTION</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">alg</td><td>)</td>
          <td>&#160;&#160;&#160;(((alg) &amp; PSA_ALG_CATEGORY_MASK) == PSA_ALG_CATEGORY_ASYMMETRIC_ENCRYPTION)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Whether the specified algorithm is a public-key encryption algorithm.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">alg</td><td>An algorithm identifier (value of type <a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69" title="Encoding of a cryptographic algorithm. ">psa_algorithm_t</a>).</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 if <code>alg</code> is a public-key encryption algorithm, 0 otherwise. This macro may return either 0 or 1 if <code>alg</code> is not a supported algorithm identifier. </dd></dl>

</div>
</div>
<a id="ga02e787d79c0cd666efcd090569d5b31c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga02e787d79c0cd666efcd090569d5b31c">&#9670;&nbsp;</a></span>PSA_ALG_IS_BLOCK_CIPHER</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_ALG_IS_BLOCK_CIPHER</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">alg</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">(((alg) &amp; (PSA_ALG_CATEGORY_MASK | PSA_ALG_CIPHER_SUBCATEGORY_MASK)) == \</div><div class="line">        PSA_ALG_BLOCK_CIPHER_BASE)</div></div><!-- fragment --><p>Whether the specified algorithm is a block cipher.</p>
<p>A block cipher is a symmetric cipher that encrypts or decrypts messages by chopping them into fixed-size blocks. Processing a message requires applying a <em>padding mode</em> to transform the message into one whose length is a whole number of blocks. To construct an algorithm identifier for a block cipher, apply a bitwise-or between the block cipher mode and the padding mode. For example, CBC with PKCS#7 padding is <code>PSA_ALG_CBC_BASE | PSA_ALG_BLOCK_CIPHER_PAD_PKCS7</code>.</p>
<p>The transformation applied to each block is determined by the key type. For example, to use AES-128-CBC-PKCS7, use the algorithm above with a key of type <a class="el" href="group__crypto__types.html#ga6ee54579dcf278c677eda4bb1a29575e">PSA_KEY_TYPE_AES</a> and a length of 128 bits (16 bytes).</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">alg</td><td>An algorithm identifier (value of type <a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69" title="Encoding of a cryptographic algorithm. ">psa_algorithm_t</a>).</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 if <code>alg</code> is a block cipher algorithm, 0 otherwise. This macro may return either 0 or 1 if <code>alg</code> is not a supported algorithm identifier or if it is not a symmetric cipher algorithm. </dd></dl>

</div>
</div>
<a id="ga1d1a5a402ad89a2e68f12bfb535490eb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1d1a5a402ad89a2e68f12bfb535490eb">&#9670;&nbsp;</a></span>PSA_ALG_IS_CIPHER</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_ALG_IS_CIPHER</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">alg</td><td>)</td>
          <td>&#160;&#160;&#160;(((alg) &amp; PSA_ALG_CATEGORY_MASK) == PSA_ALG_CATEGORY_CIPHER)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Whether the specified algorithm is a symmetric cipher algorithm.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">alg</td><td>An algorithm identifier (value of type <a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69" title="Encoding of a cryptographic algorithm. ">psa_algorithm_t</a>).</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 if <code>alg</code> is a symmetric cipher algorithm, 0 otherwise. This macro may return either 0 or 1 if <code>alg</code> is not a supported algorithm identifier. </dd></dl>

</div>
</div>
<a id="ga8986360ff97dbd91f220edf9202e375d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8986360ff97dbd91f220edf9202e375d">&#9670;&nbsp;</a></span>PSA_ALG_IS_CIPHER_MAC</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_ALG_IS_CIPHER_MAC</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">alg</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">(((alg) &amp; (PSA_ALG_CATEGORY_MASK | PSA_ALG_MAC_SUBCATEGORY_MASK)) == \</div><div class="line">     PSA_ALG_CIPHER_MAC_BASE)</div></div><!-- fragment --><p>Whether the specified algorithm is a MAC algorithm based on a block cipher.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">alg</td><td>An algorithm identifier (value of type <a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69" title="Encoding of a cryptographic algorithm. ">psa_algorithm_t</a>).</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 if <code>alg</code> is a MAC algorithm based on a block cipher, 0 otherwise. This macro may return either 0 or 1 if <code>alg</code> is not a supported algorithm identifier. </dd></dl>

</div>
</div>
<a id="gacfc3cd50ef0c4bf694cf936079bcbaee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacfc3cd50ef0c4bf694cf936079bcbaee">&#9670;&nbsp;</a></span>PSA_ALG_IS_DSA</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_ALG_IS_DSA</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">alg</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">(((alg) &amp; ~PSA_ALG_HASH_MASK &amp; ~PSA_ALG_DSA_DETERMINISTIC_FLAG) ==  \</div><div class="line">     PSA_ALG_DSA_BASE)</div></div><!-- fragment -->
</div>
</div>
<a id="gafb92dc138c9d2388033ff5fc1dab7b48"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafb92dc138c9d2388033ff5fc1dab7b48">&#9670;&nbsp;</a></span>PSA_ALG_IS_ECDSA</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_ALG_IS_ECDSA</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">alg</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">(((alg) &amp; ~PSA_ALG_HASH_MASK &amp; ~PSA_ALG_DSA_DETERMINISTIC_FLAG) ==  \</div><div class="line">     PSA_ALG_ECDSA_BASE)</div></div><!-- fragment -->
</div>
</div>
<a id="gac9280662bb482590b4b33d1dcd32930f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac9280662bb482590b4b33d1dcd32930f">&#9670;&nbsp;</a></span>PSA_ALG_IS_HASH</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_ALG_IS_HASH</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">alg</td><td>)</td>
          <td>&#160;&#160;&#160;(((alg) &amp; PSA_ALG_CATEGORY_MASK) == PSA_ALG_CATEGORY_HASH)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Whether the specified algorithm is a hash algorithm.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">alg</td><td>An algorithm identifier (value of type <a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69" title="Encoding of a cryptographic algorithm. ">psa_algorithm_t</a>).</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 if <code>alg</code> is a hash algorithm, 0 otherwise. This macro may return either 0 or 1 if <code>alg</code> is not a supported algorithm identifier. </dd></dl>

</div>
</div>
<a id="ga1979d0a76fcee6164cf2e65960f38db2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1979d0a76fcee6164cf2e65960f38db2">&#9670;&nbsp;</a></span>PSA_ALG_IS_HKDF</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_ALG_IS_HKDF</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">alg</td><td>)</td>
          <td>&#160;&#160;&#160;(((alg) &amp; ~PSA_ALG_HASH_MASK) == PSA_ALG_HKDF_BASE)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Whether the specified algorithm is an HKDF algorithm.</p>
<p>HKDF is a family of key derivation algorithms that are based on a hash function and the HMAC construction.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">alg</td><td>An algorithm identifier (value of type <a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69" title="Encoding of a cryptographic algorithm. ">psa_algorithm_t</a>).</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 if <code>alg</code> is an HKDF algorithm, 0 otherwise. This macro may return either 0 or 1 if <code>alg</code> is not a supported key derivation algorithm identifier. </dd></dl>

</div>
</div>
<a id="ga4a050c3c3cbc6eb96418f18847601c8a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4a050c3c3cbc6eb96418f18847601c8a">&#9670;&nbsp;</a></span>PSA_ALG_IS_HMAC</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_ALG_IS_HMAC</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">alg</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">(((alg) &amp; (PSA_ALG_CATEGORY_MASK | PSA_ALG_MAC_SUBCATEGORY_MASK)) == \</div><div class="line">     PSA_ALG_HMAC_BASE)</div></div><!-- fragment --><p>Whether the specified algorithm is an HMAC algorithm.</p>
<p>HMAC is a family of MAC algorithms that are based on a hash function.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">alg</td><td>An algorithm identifier (value of type <a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69" title="Encoding of a cryptographic algorithm. ">psa_algorithm_t</a>).</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 if <code>alg</code> is an HMAC algorithm, 0 otherwise. This macro may return either 0 or 1 if <code>alg</code> is not a supported algorithm identifier. </dd></dl>

</div>
</div>
<a id="ga59753742cb06553bd22751bbef472b6f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga59753742cb06553bd22751bbef472b6f">&#9670;&nbsp;</a></span>PSA_ALG_IS_KEY_AGREEMENT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_ALG_IS_KEY_AGREEMENT</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">alg</td><td>)</td>
          <td>&#160;&#160;&#160;(((alg) &amp; PSA_ALG_CATEGORY_MASK) == PSA_ALG_CATEGORY_KEY_AGREEMENT)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Whether the specified algorithm is a key agreement algorithm.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">alg</td><td>An algorithm identifier (value of type <a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69" title="Encoding of a cryptographic algorithm. ">psa_algorithm_t</a>).</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 if <code>alg</code> is a key agreement algorithm, 0 otherwise. This macro may return either 0 or 1 if <code>alg</code> is not a supported algorithm identifier. </dd></dl>

</div>
</div>
<a id="gaf8b90c648aa53dbd06c236695e300cd0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf8b90c648aa53dbd06c236695e300cd0">&#9670;&nbsp;</a></span>PSA_ALG_IS_KEY_DERIVATION</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_ALG_IS_KEY_DERIVATION</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">alg</td><td>)</td>
          <td>&#160;&#160;&#160;(((alg) &amp; PSA_ALG_CATEGORY_MASK) == PSA_ALG_CATEGORY_KEY_DERIVATION)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Whether the specified algorithm is a key derivation algorithm.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">alg</td><td>An algorithm identifier (value of type <a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69" title="Encoding of a cryptographic algorithm. ">psa_algorithm_t</a>).</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 if <code>alg</code> is a key derivation algorithm, 0 otherwise. This macro may return either 0 or 1 if <code>alg</code> is not a supported algorithm identifier. </dd></dl>

</div>
</div>
<a id="gaca7aee4c9dde316b3b1a150a26eab776"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaca7aee4c9dde316b3b1a150a26eab776">&#9670;&nbsp;</a></span>PSA_ALG_IS_MAC</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_ALG_IS_MAC</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">alg</td><td>)</td>
          <td>&#160;&#160;&#160;(((alg) &amp; PSA_ALG_CATEGORY_MASK) == PSA_ALG_CATEGORY_MAC)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Whether the specified algorithm is a MAC algorithm.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">alg</td><td>An algorithm identifier (value of type <a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69" title="Encoding of a cryptographic algorithm. ">psa_algorithm_t</a>).</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 if <code>alg</code> is a MAC algorithm, 0 otherwise. This macro may return either 0 or 1 if <code>alg</code> is not a supported algorithm identifier. </dd></dl>

</div>
</div>
<a id="ga6d490d0904e0698f6c1268a89d72ff31"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6d490d0904e0698f6c1268a89d72ff31">&#9670;&nbsp;</a></span>PSA_ALG_IS_SIGN</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_ALG_IS_SIGN</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">alg</td><td>)</td>
          <td>&#160;&#160;&#160;(((alg) &amp; PSA_ALG_CATEGORY_MASK) == PSA_ALG_CATEGORY_SIGN)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Whether the specified algorithm is a public-key signature algorithm.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">alg</td><td>An algorithm identifier (value of type <a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69" title="Encoding of a cryptographic algorithm. ">psa_algorithm_t</a>).</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 if <code>alg</code> is a public-key signature algorithm, 0 otherwise. This macro may return either 0 or 1 if <code>alg</code> is not a supported algorithm identifier. </dd></dl>

</div>
</div>
<a id="gacfec68e0c6175e02e1b2ebc97df383c0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacfec68e0c6175e02e1b2ebc97df383c0">&#9670;&nbsp;</a></span>PSA_ALG_IS_STREAM_CIPHER</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_ALG_IS_STREAM_CIPHER</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">alg</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">(((alg) &amp; (PSA_ALG_CATEGORY_MASK | PSA_ALG_CIPHER_SUBCATEGORY_MASK)) == \</div><div class="line">        PSA_ALG_STREAM_CIPHER_BASE)</div></div><!-- fragment --><p>Whether the specified algorithm is a stream cipher.</p>
<p>A stream cipher is a symmetric cipher that encrypts or decrypts messages by applying a bitwise-xor with a stream of bytes that is generated from a key.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">alg</td><td>An algorithm identifier (value of type <a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69" title="Encoding of a cryptographic algorithm. ">psa_algorithm_t</a>).</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 if <code>alg</code> is a stream cipher algorithm, 0 otherwise. This macro may return either 0 or 1 if <code>alg</code> is not a supported algorithm identifier or if it is not a symmetric cipher algorithm. </dd></dl>

</div>
</div>
<a id="gaa1235dc3fdd9839c6c1b1a9857344c76"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa1235dc3fdd9839c6c1b1a9857344c76">&#9670;&nbsp;</a></span>PSA_ALG_RSA_OAEP</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_ALG_RSA_OAEP</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">hash_alg</td><td>)</td>
          <td>&#160;&#160;&#160;(PSA_ALG_RSA_OAEP_BASE | ((hash_alg) &amp; PSA_ALG_HASH_MASK))</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>RSA OAEP encryption.</p>
<p>This is the encryption scheme defined by RFC 8017 (PKCS#1: RSA Cryptography Specifications) under the name RSAES-OAEP, with the message generation function MGF1.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">hash_alg</td><td>The hash algorithm (<code>PSA_ALG_XXX</code> value such that <a class="el" href="group__crypto__types.html#gac9280662bb482590b4b33d1dcd32930f">PSA_ALG_IS_HASH</a>(<code>hash_alg</code>) is true) to use for MGF1.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The corresponding RSA OAEP signature algorithm. </dd>
<dd>
Unspecified if <code>alg</code> is not a supported hash algorithm. </dd></dl>

</div>
</div>
<a id="gae6b0b87aabe82a1b3113824f022c52e8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae6b0b87aabe82a1b3113824f022c52e8">&#9670;&nbsp;</a></span>PSA_ALG_RSA_OAEP_GET_HASH</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_ALG_RSA_OAEP_GET_HASH</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">alg</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">(PSA_ALG_IS_RSA_OAEP(alg) ?                                 \</div><div class="line">     ((alg) &amp; PSA_ALG_HASH_MASK) | PSA_ALG_CATEGORY_HASH :      \</div><div class="line">     0)</div></div><!-- fragment -->
</div>
</div>
<a id="ga4c540d3abe43fb9abcb94f2bc51acef9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4c540d3abe43fb9abcb94f2bc51acef9">&#9670;&nbsp;</a></span>PSA_ALG_RSA_PKCS1V15_CRYPT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_ALG_RSA_PKCS1V15_CRYPT&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x12020000)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>RSA PKCS#1 v1.5 encryption. </p>

</div>
</div>
<a id="ga702ff75385a6ae7d4247033f479439af"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga702ff75385a6ae7d4247033f479439af">&#9670;&nbsp;</a></span>PSA_ALG_RSA_PKCS1V15_SIGN</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_ALG_RSA_PKCS1V15_SIGN</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">hash_alg</td><td>)</td>
          <td>&#160;&#160;&#160;(PSA_ALG_RSA_PKCS1V15_SIGN_BASE | ((hash_alg) &amp; PSA_ALG_HASH_MASK))</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>RSA PKCS#1 v1.5 signature with hashing.</p>
<p>This is the signature scheme defined by RFC 8017 (PKCS#1: RSA Cryptography Specifications) under the name RSASSA-PKCS1-v1_5.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">hash_alg</td><td>A hash algorithm (<code>PSA_ALG_XXX</code> value such that <a class="el" href="group__crypto__types.html#gac9280662bb482590b4b33d1dcd32930f">PSA_ALG_IS_HASH</a>(<code>hash_alg</code>) is true).</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The corresponding RSA PKCS#1 v1.5 signature algorithm. </dd>
<dd>
Unspecified if <code>alg</code> is not a supported hash algorithm. </dd></dl>

</div>
</div>
<a id="ga4215e2a78dcf834e9a625927faa2a817"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4215e2a78dcf834e9a625927faa2a817">&#9670;&nbsp;</a></span>PSA_ALG_RSA_PKCS1V15_SIGN_RAW</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_ALG_RSA_PKCS1V15_SIGN_RAW&#160;&#160;&#160;PSA_ALG_RSA_PKCS1V15_SIGN_BASE</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Raw PKCS#1 v1.5 signature.</p>
<p>The input to this algorithm is the DigestInfo structure used by RFC 8017 (PKCS#1: RSA Cryptography Specifications), &sect;9.2 steps 3&ndash;6. </p>

</div>
</div>
<a id="ga62152bf4cb4bf6aace5e1be8f143564d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga62152bf4cb4bf6aace5e1be8f143564d">&#9670;&nbsp;</a></span>PSA_ALG_RSA_PSS</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_ALG_RSA_PSS</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">hash_alg</td><td>)</td>
          <td>&#160;&#160;&#160;(PSA_ALG_RSA_PSS_BASE | ((hash_alg) &amp; PSA_ALG_HASH_MASK))</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>RSA PSS signature with hashing.</p>
<p>This is the signature scheme defined by RFC 8017 (PKCS#1: RSA Cryptography Specifications) under the name RSASSA-PSS, with the message generation function MGF1, and with a salt length equal to the length of the hash. The specified hash algorithm is used to hash the input message, to create the salted hash, and for the mask generation.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">hash_alg</td><td>A hash algorithm (<code>PSA_ALG_XXX</code> value such that <a class="el" href="group__crypto__types.html#gac9280662bb482590b4b33d1dcd32930f">PSA_ALG_IS_HASH</a>(<code>hash_alg</code>) is true).</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The corresponding RSA PSS signature algorithm. </dd>
<dd>
Unspecified if <code>alg</code> is not a supported hash algorithm. </dd></dl>

</div>
</div>
<a id="ga16f5fe34ccce68c2fada1224c054a999"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga16f5fe34ccce68c2fada1224c054a999">&#9670;&nbsp;</a></span>PSA_ALG_SHA3_224</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_ALG_SHA3_224&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x01000010)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>SHA3-224 </p>

</div>
</div>
<a id="gaace70d9515489bbe3c5e7ac1b7d9155b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaace70d9515489bbe3c5e7ac1b7d9155b">&#9670;&nbsp;</a></span>PSA_ALG_SHA3_256</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_ALG_SHA3_256&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x01000011)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>SHA3-256 </p>

</div>
</div>
<a id="gab0f079257ea75e2acfe2fc3b38c78cd8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab0f079257ea75e2acfe2fc3b38c78cd8">&#9670;&nbsp;</a></span>PSA_ALG_SHA3_384</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_ALG_SHA3_384&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x01000012)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>SHA3-384 </p>

</div>
</div>
<a id="ga37e5dbe936dddb155e76f2997de27188"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga37e5dbe936dddb155e76f2997de27188">&#9670;&nbsp;</a></span>PSA_ALG_SHA3_512</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_ALG_SHA3_512&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x01000013)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>SHA3-512 </p>

</div>
</div>
<a id="ga25d6a3244d10a7148fe6b026d1979f7b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga25d6a3244d10a7148fe6b026d1979f7b">&#9670;&nbsp;</a></span>PSA_ALG_SHA_224</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_ALG_SHA_224&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x01000008)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>SHA2-224 </p>

</div>
</div>
<a id="ga619471f978e13cdd0a1e37145e4bf341"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga619471f978e13cdd0a1e37145e4bf341">&#9670;&nbsp;</a></span>PSA_ALG_SHA_256</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_ALG_SHA_256&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x01000009)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>SHA2-256 </p>

</div>
</div>
<a id="ga58af64dd9a86a287e8da9ed7739eead4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga58af64dd9a86a287e8da9ed7739eead4">&#9670;&nbsp;</a></span>PSA_ALG_SHA_384</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_ALG_SHA_384&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x0100000a)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>SHA2-384 </p>

</div>
</div>
<a id="gafba3ae409f46d3dd7f37a0910660c3e9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafba3ae409f46d3dd7f37a0910660c3e9">&#9670;&nbsp;</a></span>PSA_ALG_SHA_512</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_ALG_SHA_512&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x0100000b)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>SHA2-512 </p>

</div>
</div>
<a id="ga3fe2d7c3c80e3186ca78d16a35d5d931"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3fe2d7c3c80e3186ca78d16a35d5d931">&#9670;&nbsp;</a></span>PSA_ALG_SHA_512_224</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_ALG_SHA_512_224&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x0100000c)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>SHA2-512/224 </p>

</div>
</div>
<a id="ga5910b3964c14e9613e8643a45b09c2d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5910b3964c14e9613e8643a45b09c2d4">&#9670;&nbsp;</a></span>PSA_ALG_SHA_512_256</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_ALG_SHA_512_256&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a>)0x0100000d)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>SHA2-512/256 </p>

</div>
</div>
<a id="ga24cf6d7bcd2b9aeeeff86f07b6c674e3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga24cf6d7bcd2b9aeeeff86f07b6c674e3">&#9670;&nbsp;</a></span>PSA_ALG_SIGN_GET_HASH</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_ALG_SIGN_GET_HASH</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">alg</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">(PSA_ALG_IS_RSA_PSS(alg) || PSA_ALG_IS_RSA_PKCS1V15_SIGN(alg) ||   \</div><div class="line">     PSA_ALG_IS_DSA(alg) || PSA_ALG_IS_ECDSA(alg) ?                    \</div><div class="line">     ((alg) &amp; PSA_ALG_HASH_MASK) == 0 ? <span class="comment">/*&quot;raw&quot; algorithm*/</span> 0 :        \</div><div class="line">     ((alg) &amp; PSA_ALG_HASH_MASK) | PSA_ALG_CATEGORY_HASH :             \</div><div class="line">     0)</div></div><!-- fragment --><p>Get the hash used by a hash-and-sign signature algorithm.</p>
<p>A hash-and-sign algorithm is a signature algorithm which is composed of two phases: first a hashing phase which does not use the key and produces a hash of the input message, then a signing phase which only uses the hash and the key and not the message itself.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">alg</td><td>A signature algorithm (<code>PSA_ALG_XXX</code> value such that <a class="el" href="group__crypto__types.html#ga6d490d0904e0698f6c1268a89d72ff31">PSA_ALG_IS_SIGN</a>(<code>alg</code>) is true).</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The underlying hash algorithm if <code>alg</code> is a hash-and-sign algorithm. </dd>
<dd>
0 if <code>alg</code> is a signature algorithm that does not follow the hash-and-sign structure. </dd>
<dd>
Unspecified if <code>alg</code> is not a signature algorithm or if it is not supported by the implementation. </dd></dl>

</div>
</div>
<a id="gacaa366bdeb0413e63e87a667c5457b2e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacaa366bdeb0413e63e87a667c5457b2e">&#9670;&nbsp;</a></span>PSA_BLOCK_CIPHER_BLOCK_SIZE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_BLOCK_CIPHER_BLOCK_SIZE</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">(                                                \</div><div class="line">        (type) == <a class="code" href="group__crypto__types.html#ga6ee54579dcf278c677eda4bb1a29575e">PSA_KEY_TYPE_AES</a> ? 16 :            \</div><div class="line">        (type) == <a class="code" href="group__crypto__types.html#ga577562bfbbc691c820d55ec308333138">PSA_KEY_TYPE_DES</a> ? 8 :             \</div><div class="line">        (type) == <a class="code" href="group__crypto__types.html#gad8e5da742343fd5519f9d8a630c2ed81">PSA_KEY_TYPE_CAMELLIA</a> ? 16 :       \</div><div class="line">        (type) == <a class="code" href="group__crypto__types.html#gae4d46e83f910dcaa126000a8ed03cde9">PSA_KEY_TYPE_ARC4</a> ? 1 :            \</div><div class="line">        0)</div><div class="ttc" id="group__crypto__types_html_ga577562bfbbc691c820d55ec308333138"><div class="ttname"><a href="group__crypto__types.html#ga577562bfbbc691c820d55ec308333138">PSA_KEY_TYPE_DES</a></div><div class="ttdeci">#define PSA_KEY_TYPE_DES</div><div class="ttdef"><b>Definition:</b> crypto.h:408</div></div>
<div class="ttc" id="group__crypto__types_html_gad8e5da742343fd5519f9d8a630c2ed81"><div class="ttname"><a href="group__crypto__types.html#gad8e5da742343fd5519f9d8a630c2ed81">PSA_KEY_TYPE_CAMELLIA</a></div><div class="ttdeci">#define PSA_KEY_TYPE_CAMELLIA</div><div class="ttdef"><b>Definition:</b> crypto.h:412</div></div>
<div class="ttc" id="group__crypto__types_html_ga6ee54579dcf278c677eda4bb1a29575e"><div class="ttname"><a href="group__crypto__types.html#ga6ee54579dcf278c677eda4bb1a29575e">PSA_KEY_TYPE_AES</a></div><div class="ttdeci">#define PSA_KEY_TYPE_AES</div><div class="ttdef"><b>Definition:</b> crypto.h:397</div></div>
<div class="ttc" id="group__crypto__types_html_gae4d46e83f910dcaa126000a8ed03cde9"><div class="ttname"><a href="group__crypto__types.html#gae4d46e83f910dcaa126000a8ed03cde9">PSA_KEY_TYPE_ARC4</a></div><div class="ttdeci">#define PSA_KEY_TYPE_ARC4</div><div class="ttdef"><b>Definition:</b> crypto.h:418</div></div>
</div><!-- fragment --><p>The block size of a block cipher.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">type</td><td>A cipher key type (value of type <a class="el" href="group__crypto__types.html#ga578159487dfc7096cb191b0d2befe628" title="Encoding of a key type. ">psa_key_type_t</a>).</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The block size for a block cipher, or 1 for a stream cipher. The return value is undefined if <code>type</code> is not a supported cipher key type.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>It is possible to build stream cipher algorithms on top of a block cipher, for example CTR mode (<a class="el" href="group__crypto__types.html#gad318309706a769cffdc64e4c7e06b2e9">PSA_ALG_CTR</a>). This macro only takes the key type into account, so it cannot be used to determine the size of the data that <a class="el" href="group__cipher.html#gafd0caea99cf1052527e4089d37f5ab91">psa_cipher_update()</a> might buffer for future processing in general.</dd>
<dd>
This macro returns a compile-time constant if its argument is one.</dd></dl>
<dl class="section warning"><dt>Warning</dt><dd>This macro may evaluate its argument multiple times. </dd></dl>

</div>
</div>
<a id="ga6ee54579dcf278c677eda4bb1a29575e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6ee54579dcf278c677eda4bb1a29575e">&#9670;&nbsp;</a></span>PSA_KEY_TYPE_AES</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_KEY_TYPE_AES&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga578159487dfc7096cb191b0d2befe628">psa_key_type_t</a>)0x04000001)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Key for an cipher, AEAD or MAC algorithm based on the AES block cipher.</p>
<p>The size of the key can be 16 bytes (AES-128), 24 bytes (AES-192) or 32 bytes (AES-256). </p>

</div>
</div>
<a id="gae4d46e83f910dcaa126000a8ed03cde9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae4d46e83f910dcaa126000a8ed03cde9">&#9670;&nbsp;</a></span>PSA_KEY_TYPE_ARC4</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_KEY_TYPE_ARC4&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga578159487dfc7096cb191b0d2befe628">psa_key_type_t</a>)0x04000004)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Key for the RC4 stream cipher.</p>
<p>Note that RC4 is weak and deprecated and should only be used in legacy protocols. </p>

</div>
</div>
<a id="gad8e5da742343fd5519f9d8a630c2ed81"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad8e5da742343fd5519f9d8a630c2ed81">&#9670;&nbsp;</a></span>PSA_KEY_TYPE_CAMELLIA</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_KEY_TYPE_CAMELLIA&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga578159487dfc7096cb191b0d2befe628">psa_key_type_t</a>)0x04000003)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Key for an cipher, AEAD or MAC algorithm based on the Camellia block cipher. </p>

</div>
</div>
<a id="gae871b2357b8593f33bfd51abbf93ebb1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae871b2357b8593f33bfd51abbf93ebb1">&#9670;&nbsp;</a></span>PSA_KEY_TYPE_DERIVE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_KEY_TYPE_DERIVE&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga578159487dfc7096cb191b0d2befe628">psa_key_type_t</a>)0x02000101)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>A secret for key derivation.</p>
<p>The key policy determines which key derivation algorithm the key can be used for. </p>

</div>
</div>
<a id="ga577562bfbbc691c820d55ec308333138"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga577562bfbbc691c820d55ec308333138">&#9670;&nbsp;</a></span>PSA_KEY_TYPE_DES</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_KEY_TYPE_DES&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga578159487dfc7096cb191b0d2befe628">psa_key_type_t</a>)0x04000002)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Key for a cipher or MAC algorithm based on DES or 3DES (Triple-DES).</p>
<p>The size of the key can be 8 bytes (single DES), 16 bytes (2-key 3DES) or 24 bytes (3-key 3DES).</p>
<p>Note that single DES and 2-key 3DES are weak and strongly deprecated and should only be used to decrypt legacy data. 3-key 3DES is weak and deprecated and should only be used in legacy protocols. </p>

</div>
</div>
<a id="ga011010ee28c20388f3d89fb27088ed62"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga011010ee28c20388f3d89fb27088ed62">&#9670;&nbsp;</a></span>PSA_KEY_TYPE_DSA_KEYPAIR</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_KEY_TYPE_DSA_KEYPAIR&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga578159487dfc7096cb191b0d2befe628">psa_key_type_t</a>)0x07020000)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>DSA key pair (private and public key). </p>

</div>
</div>
<a id="ga5e7439c2905136366c3a876e62e5ddfc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5e7439c2905136366c3a876e62e5ddfc">&#9670;&nbsp;</a></span>PSA_KEY_TYPE_DSA_PUBLIC_KEY</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_KEY_TYPE_DSA_PUBLIC_KEY&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga578159487dfc7096cb191b0d2befe628">psa_key_type_t</a>)0x06020000)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>DSA public key. </p>

</div>
</div>
<a id="gadf3ad65d157bf5282849c954bf3f51af"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gadf3ad65d157bf5282849c954bf3f51af">&#9670;&nbsp;</a></span>PSA_KEY_TYPE_ECC_KEYPAIR</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_KEY_TYPE_ECC_KEYPAIR</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">curve</td><td>)</td>
          <td>&#160;&#160;&#160;(PSA_KEY_TYPE_ECC_KEYPAIR_BASE | (curve))</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Elliptic curve key pair. </p>

</div>
</div>
<a id="gad54c03d3b47020e571a72cd01d978cf2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad54c03d3b47020e571a72cd01d978cf2">&#9670;&nbsp;</a></span>PSA_KEY_TYPE_ECC_PUBLIC_KEY</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_KEY_TYPE_ECC_PUBLIC_KEY</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">curve</td><td>)</td>
          <td>&#160;&#160;&#160;(PSA_KEY_TYPE_ECC_PUBLIC_KEY_BASE | (curve))</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Elliptic curve public key. </p>

</div>
</div>
<a id="ga0c567210e6f80aa8f2aa87efa7a3a3f9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0c567210e6f80aa8f2aa87efa7a3a3f9">&#9670;&nbsp;</a></span>PSA_KEY_TYPE_GET_CURVE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_KEY_TYPE_GET_CURVE</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">((<a class="code" href="group__crypto__types.html#ga4e8977c145cce5077c4bce7fec890ad9">psa_ecc_curve_t</a>) (<a class="code" href="group__crypto__types.html#ga88e01fa06b585654689a99bcc06bbe66">PSA_KEY_TYPE_IS_ECC</a>(type) ?              \</div><div class="line">                        ((type) &amp; PSA_KEY_TYPE_ECC_CURVE_MASK) : \</div><div class="line">                        0))</div><div class="ttc" id="group__crypto__types_html_ga4e8977c145cce5077c4bce7fec890ad9"><div class="ttname"><a href="group__crypto__types.html#ga4e8977c145cce5077c4bce7fec890ad9">psa_ecc_curve_t</a></div><div class="ttdeci">uint16_t psa_ecc_curve_t</div><div class="ttdef"><b>Definition:</b> crypto.h:478</div></div>
<div class="ttc" id="group__crypto__types_html_ga88e01fa06b585654689a99bcc06bbe66"><div class="ttname"><a href="group__crypto__types.html#ga88e01fa06b585654689a99bcc06bbe66">PSA_KEY_TYPE_IS_ECC</a></div><div class="ttdeci">#define PSA_KEY_TYPE_IS_ECC(type)</div><div class="ttdef"><b>Definition:</b> crypto.h:467</div></div>
</div><!-- fragment --><p>Extract the curve from an elliptic curve key type. </p>

</div>
</div>
<a id="ga92d989f4ca64abd00f463defd773a6f8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga92d989f4ca64abd00f463defd773a6f8">&#9670;&nbsp;</a></span>PSA_KEY_TYPE_HMAC</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_KEY_TYPE_HMAC&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga578159487dfc7096cb191b0d2befe628">psa_key_type_t</a>)0x02000001)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>HMAC key.</p>
<p>The key policy determines which underlying hash algorithm the key can be used for.</p>
<p>HMAC keys should generally have the same size as the underlying hash. This size can be calculated with <a class="el" href="group__hash.html#gaef340331ce3cba2b57e1fc5624bf1f99">PSA_HASH_SIZE</a>(<code>alg</code>) where <code>alg</code> is the HMAC algorithm or the underlying hash algorithm. </p>

</div>
</div>
<a id="gab138ae2ebf2905dfbaf4154db2620939"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab138ae2ebf2905dfbaf4154db2620939">&#9670;&nbsp;</a></span>PSA_KEY_TYPE_IS_ASYMMETRIC</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_KEY_TYPE_IS_ASYMMETRIC</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type</td><td>)</td>
          <td>&#160;&#160;&#160;(((type) &amp; PSA_KEY_TYPE_CATEGORY_MASK) == PSA_KEY_TYPE_CATEGORY_ASYMMETRIC)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Whether a key type is asymmetric: either a key pair or a public key. </p>

</div>
</div>
<a id="ga88e01fa06b585654689a99bcc06bbe66"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga88e01fa06b585654689a99bcc06bbe66">&#9670;&nbsp;</a></span>PSA_KEY_TYPE_IS_ECC</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_KEY_TYPE_IS_ECC</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">((<a class="code" href="group__crypto__types.html#gace08e46dd7cbf642d50d982a25d02bec">PSA_KEY_TYPE_PUBLIC_KEY_OF_KEYPAIR</a>(type) &amp;                        \</div><div class="line">      ~PSA_KEY_TYPE_ECC_CURVE_MASK) == PSA_KEY_TYPE_ECC_PUBLIC_KEY_BASE)</div><div class="ttc" id="group__crypto__types_html_gace08e46dd7cbf642d50d982a25d02bec"><div class="ttname"><a href="group__crypto__types.html#gace08e46dd7cbf642d50d982a25d02bec">PSA_KEY_TYPE_PUBLIC_KEY_OF_KEYPAIR</a></div><div class="ttdeci">#define PSA_KEY_TYPE_PUBLIC_KEY_OF_KEYPAIR(type)</div><div class="ttdef"><b>Definition:</b> crypto.h:460</div></div>
</div><!-- fragment --><p>Whether a key type is an elliptic curve key (pair or public-only). </p>

</div>
</div>
<a id="ga7bf101b671e8cf26f4cb08fcb679db4b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7bf101b671e8cf26f4cb08fcb679db4b">&#9670;&nbsp;</a></span>PSA_KEY_TYPE_IS_ECC_KEYPAIR</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_KEY_TYPE_IS_ECC_KEYPAIR</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">(((type) &amp; ~PSA_KEY_TYPE_ECC_CURVE_MASK) ==                         \</div><div class="line">     PSA_KEY_TYPE_ECC_KEYPAIR_BASE)</div></div><!-- fragment -->
</div>
</div>
<a id="ga5af146a173b0c84d7e737e2fb6a3c0a7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5af146a173b0c84d7e737e2fb6a3c0a7">&#9670;&nbsp;</a></span>PSA_KEY_TYPE_IS_ECC_PUBLIC_KEY</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_KEY_TYPE_IS_ECC_PUBLIC_KEY</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">(((type) &amp; ~PSA_KEY_TYPE_ECC_CURVE_MASK) ==                         \</div><div class="line">     PSA_KEY_TYPE_ECC_PUBLIC_KEY_BASE)</div></div><!-- fragment -->
</div>
</div>
<a id="gac14c6d6e1b2b7f4a92a7b757465cff29"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac14c6d6e1b2b7f4a92a7b757465cff29">&#9670;&nbsp;</a></span>PSA_KEY_TYPE_IS_KEYPAIR</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_KEY_TYPE_IS_KEYPAIR</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">(((type) &amp; (PSA_KEY_TYPE_CATEGORY_MASK | PSA_KEY_TYPE_PAIR_FLAG)) == \</div><div class="line">     (PSA_KEY_TYPE_CATEGORY_ASYMMETRIC | PSA_KEY_TYPE_PAIR_FLAG))</div></div><!-- fragment --><p>Whether a key type is a key pair containing a private part and a public part. </p>

</div>
</div>
<a id="gac674a0f059bc0cb72b47f0c517b4f45b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac674a0f059bc0cb72b47f0c517b4f45b">&#9670;&nbsp;</a></span>PSA_KEY_TYPE_IS_PUBLIC_KEY</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_KEY_TYPE_IS_PUBLIC_KEY</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">(((type) &amp; (PSA_KEY_TYPE_CATEGORY_MASK | PSA_KEY_TYPE_PAIR_FLAG)) == \</div><div class="line">      PSA_KEY_TYPE_CATEGORY_ASYMMETRIC)</div></div><!-- fragment --><p>Whether a key type is the public part of a key pair. </p>

</div>
</div>
<a id="ga0e1d8f241228e49c9cadadfb4579ef1a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0e1d8f241228e49c9cadadfb4579ef1a">&#9670;&nbsp;</a></span>PSA_KEY_TYPE_IS_RSA</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_KEY_TYPE_IS_RSA</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type</td><td>)</td>
          <td>&#160;&#160;&#160;(<a class="el" href="group__crypto__types.html#gace08e46dd7cbf642d50d982a25d02bec">PSA_KEY_TYPE_PUBLIC_KEY_OF_KEYPAIR</a>(type) == <a class="el" href="group__crypto__types.html#ga9ba0878f56c8bcd1995ac017a74f513b">PSA_KEY_TYPE_RSA_PUBLIC_KEY</a>)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Whether a key type is an RSA key (pair or public-only). </p>

</div>
</div>
<a id="gadbe4c086a6562aefe344bc79e51bdfd3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gadbe4c086a6562aefe344bc79e51bdfd3">&#9670;&nbsp;</a></span>PSA_KEY_TYPE_IS_VENDOR_DEFINED</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_KEY_TYPE_IS_VENDOR_DEFINED</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type</td><td>)</td>
          <td>&#160;&#160;&#160;(((type) &amp; <a class="el" href="group__crypto__types.html#ga8dbaed2fdb1ebae8aa127ad3988516f7">PSA_KEY_TYPE_VENDOR_FLAG</a>) != 0)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Whether a key type is vendor-defined. </p>

</div>
</div>
<a id="gaf09f1ca1de6a7e7cff0fe516f3f6c91d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf09f1ca1de6a7e7cff0fe516f3f6c91d">&#9670;&nbsp;</a></span>PSA_KEY_TYPE_KEYPAIR_OF_PUBLIC_KEY</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_KEY_TYPE_KEYPAIR_OF_PUBLIC_KEY</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type</td><td>)</td>
          <td>&#160;&#160;&#160;((type) | PSA_KEY_TYPE_PAIR_FLAG)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The key pair type corresponding to a public key type. </p>

</div>
</div>
<a id="gafce7ab2b54ce97ea5bff73f13a9f3e5b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafce7ab2b54ce97ea5bff73f13a9f3e5b">&#9670;&nbsp;</a></span>PSA_KEY_TYPE_NONE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_KEY_TYPE_NONE&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga578159487dfc7096cb191b0d2befe628">psa_key_type_t</a>)0x00000000)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>An invalid key type value.</p>
<p>Zero is not the encoding of any key type. </p>

</div>
</div>
<a id="gace08e46dd7cbf642d50d982a25d02bec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gace08e46dd7cbf642d50d982a25d02bec">&#9670;&nbsp;</a></span>PSA_KEY_TYPE_PUBLIC_KEY_OF_KEYPAIR</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_KEY_TYPE_PUBLIC_KEY_OF_KEYPAIR</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type</td><td>)</td>
          <td>&#160;&#160;&#160;((type) &amp; ~PSA_KEY_TYPE_PAIR_FLAG)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The public key type corresponding to a key pair type. </p>

</div>
</div>
<a id="gaa97f92025533102616b32d571c940d80"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa97f92025533102616b32d571c940d80">&#9670;&nbsp;</a></span>PSA_KEY_TYPE_RAW_DATA</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_KEY_TYPE_RAW_DATA&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga578159487dfc7096cb191b0d2befe628">psa_key_type_t</a>)0x02000000)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Raw data.</p>
<p>A "key" of this type cannot be used for any cryptographic operation. Applications may use this type to store arbitrary data in the keystore. </p>

</div>
</div>
<a id="ga581f50687f5d650456925278948f2799"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga581f50687f5d650456925278948f2799">&#9670;&nbsp;</a></span>PSA_KEY_TYPE_RSA_KEYPAIR</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_KEY_TYPE_RSA_KEYPAIR&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga578159487dfc7096cb191b0d2befe628">psa_key_type_t</a>)0x07010000)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>RSA key pair (private and public key). </p>

</div>
</div>
<a id="ga9ba0878f56c8bcd1995ac017a74f513b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9ba0878f56c8bcd1995ac017a74f513b">&#9670;&nbsp;</a></span>PSA_KEY_TYPE_RSA_PUBLIC_KEY</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_KEY_TYPE_RSA_PUBLIC_KEY&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga578159487dfc7096cb191b0d2befe628">psa_key_type_t</a>)0x06010000)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>RSA public key. </p>

</div>
</div>
<a id="ga8dbaed2fdb1ebae8aa127ad3988516f7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8dbaed2fdb1ebae8aa127ad3988516f7">&#9670;&nbsp;</a></span>PSA_KEY_TYPE_VENDOR_FLAG</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PSA_KEY_TYPE_VENDOR_FLAG&#160;&#160;&#160;((<a class="el" href="group__crypto__types.html#ga578159487dfc7096cb191b0d2befe628">psa_key_type_t</a>)0x80000000)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Vendor-defined flag</p>
<p>Key types defined by this standard will never have the <a class="el" href="group__crypto__types.html#ga8dbaed2fdb1ebae8aa127ad3988516f7">PSA_KEY_TYPE_VENDOR_FLAG</a> bit set. Vendors who define additional key types must use an encoding with the <a class="el" href="group__crypto__types.html#ga8dbaed2fdb1ebae8aa127ad3988516f7">PSA_KEY_TYPE_VENDOR_FLAG</a> bit set and should respect the bitwise structure used by standard encodings whenever practical. </p>

</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="gac2e4d47f1300d73c2f829a6d99252d69"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac2e4d47f1300d73c2f829a6d99252d69">&#9670;&nbsp;</a></span>psa_algorithm_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef uint32_t <a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69">psa_algorithm_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Encoding of a cryptographic algorithm. </p>
<p>For algorithms that can be applied to multiple key types, this type does not encode the key type. For example, for symmetric ciphers based on a block cipher, <a class="el" href="group__crypto__types.html#gac2e4d47f1300d73c2f829a6d99252d69" title="Encoding of a cryptographic algorithm. ">psa_algorithm_t</a> encodes the block cipher mode and the padding mode while the block cipher itself is encoded via <a class="el" href="group__crypto__types.html#ga578159487dfc7096cb191b0d2befe628" title="Encoding of a key type. ">psa_key_type_t</a>. </p>

</div>
</div>
<a id="ga4e8977c145cce5077c4bce7fec890ad9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4e8977c145cce5077c4bce7fec890ad9">&#9670;&nbsp;</a></span>psa_ecc_curve_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef uint16_t <a class="el" href="group__crypto__types.html#ga4e8977c145cce5077c4bce7fec890ad9">psa_ecc_curve_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The type of PSA elliptic curve identifiers. </p>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>
